Compare commits

..
3 Commits
Author SHA1 Message Date
Timba 8eb13a4e15 SHUFTN 0.3.1 2026-09-04 15:12:39 +00:00
Timba a5fa153de3 SHUFTN 0.3.0 2026-09-04 14:38:10 +00:00
Timba 8d90df34e9 SHUFTN 0.2.9 2026-09-04 09:30:24 +00:00
+5 -5
View File
@@ -1,11 +1,11 @@
{
"version": "0.2.8",
"notes": "Serverfehler ohne Erklärung sagen jetzt, aus welcher Ecke sie kommen. Meldete der Exchange einen Fehler, ohne einen Grund mitzuschicken, endete der Satz mitten im Nichts: „Der Server meldet einen Fehler (503): Kontakte (FindItem):\" — und dahinter kam nichts mehr. Damit sah es aus wie ein fehlendes Recht am Postfach, und dort war nichts zu finden: Eine Antwort ohne SOAP-Rumpf stammt gar nicht von Exchange, sondern von der Web-Ebene davor. Genau das steht jetzt da, samt dem, was der Server tatsächlich geschickt hat.\n\nErweiterungen sagen jetzt, wenn es eine andere Fassung gibt. Bisher änderte sich ein Plugin nur, wenn jemand von sich aus die Adresse noch einmal eintrug — wer nie nachsah, blieb für immer auf der Fassung, die er einmal eingespielt hatte. Ein Paket kann im Manifest eine `https`-Adresse nennen, an der steht, welche Fassung gilt; SHUFTN fragt dort nach und zeigt einen Knopf.\n\nGefragt wird beim Öffnen der Seite Erweiterungen, nicht beim Start. Ein Programm, das beim Hochfahren ungefragt ins Netz greift, tut etwas, das niemand verlangt hat — und beim eingebauten Editor wäre es besonders schief: Er ist das Werkzeug, das ausdrücklich nichts nachlädt. Nennt ein Paket keine Adresse, entsteht überhaupt keine Verbindung; das ist die Vorgabe.\n\nEingespielt wird nichts von selbst. Der Knopf ruft dasselbe Einspielen auf wie das Feld „Quelle\", mit allem, was daran hängt: erst entpacken, dann prüfen, dann umhängen, ältere Fassung bleibt als Rückweg liegen. Ein Paket, das sich unbemerkt austauscht, wäre ein Programm, das seinen eigenen Code hinter dem Rücken seines Besitzers ändert.\n\nVerglichen wird auf Ungleichheit, nicht auf „grösser\": `9.3.4-hotfix.1` ist keine Zahl, und ein Grösser-Vergleich müsste raten, wie so etwas zu ordnen ist. Wer veröffentlicht, sagt, was gilt. Damit wird auch ein Rückschritt angeboten — und das ist gewollt, denn wer zurücknehmen muss, will genau das.",
"pub_date": "2026-09-04T09:03:35Z",
"version": "0.3.1",
"notes": "Diktieren braucht keinen Endpunkt mehr — Whisper rechnet auf diesem Rechner. Das Modell dazu kommt als eigenes Paket, das man einspielt oder eben nicht.\n\nDiktieren geht jetzt ohne Endpunkt — auf diesem Rechner. Bisher brauchte das Diktat einen Dienst, der `POST /audio/transcriptions` annimmt. Am eigenen Endpunkt gemessen: `GET /v1/ki/models` antwortete 401 (die Route gibt es), `/audio/transcriptions` antwortete 404. Dort lief das Textmodell, aber keine Spracherkennung — und damit ging Diktieren gar nicht, ohne dass jemand am Server etwas nachrüstet.\n\nJetzt rechnet Whisper hier: Die Aufnahme verlässt den Rechner nicht, nicht einmal ins eigene Rechenzentrum. Wer ein Modell eingespielt hat, bekommt diesen Weg; wer keines hat, weiter den Endpunkt. Der Mikrofonknopf sagt im Zeigerfähnchen, welcher gerade gilt.\n\nAn einer gesprochenen Probe nachgemessen (die Sprachausgabe von Windows las einen Satz vor, 4,9 Sekunden):\n\ngeladen in 232 ms erkannt in 453 ms „Bitte senden Sie mir das Angebot für die Halle süd bis Freitag.\"\n\nGesprochen war „… Halle Süd …\" — bis auf die Grosschreibung Wort für Wort.\n\nDas Modell kommt als Plugin. `whisper-base` wiegt 277 MB, der Installer von SHUFTN 272 MB; beides zusammen hiesse ein halbes Gigabyte für jeden, auch für den, der nie diktiert. Es wird deshalb eingespielt wie der Editor — unter *Einstellungen → Erweiterungen*, mit Prüfsummen und der Möglichkeit, es wieder loszuwerden. Ohne Neustart: Ein Modell meldet kein Schema an, der Kern liest seine Dateien beim nächsten Diktat.\n\nDamit gibt es zwei Arten Plugin. Ein Modell nennt weder `schema` noch `einstieg`, und beides wird abgewiesen: Stünde dort ein Schema, lieferte SHUFTN die 277 MB Gewichte als Webseite aus. Was für Paketbauer gilt, steht in `PLUGINS.md` unter „Modelle\".\n\nGerechnet wird in reinem Rust. `whisper.cpp` wäre der verbreitetere Weg und hätte eine C++-Werkzeugkette in den Bau von SHUFTN gebracht — cmake, ein Compiler, plattformabhängige Schalter. Dann liesse sich SHUFTN nicht mehr mit `cargo build` allein übersetzen. Der Preis steht offen: auf der CPU langsamer als handoptimiertes C. Bei einem Diktat von zwanzig Sekunden ist das eine Frage von Sekunden.\n\nDas Umrechnen der Aufnahme (Opus → 16 kHz Mono) macht die Webansicht, nicht der Kern: Sie hat den Dekodierer eingebaut, und ihn in Rust nachzubauen hiesse wieder eine C-Bibliothek. Was der Kern bekommt, ist ein WAV — und was nicht 16 kHz Mono ist, weist er ab, statt es falsch zu deuten. Eine falsch gedeutete Abtastrate klingt für Whisper wie jemand, der zu schnell spricht, und liefert Text, den niemand als falsch erkennt.",
"pub_date": "2026-09-04T15:12:36Z",
"platforms": {
"windows-x86_64": {
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRbENEalUzQ3RFRHd2Qi9XRzhTcnlnUFB4NXltY0FPRHZGMnVFY2xlNHp1eXZVbWp6WFR2cG1yMGpEaUlCZzl5aXNyZ0FOOWptanNxZ2QwZXVoT2gyWWZkK1hDaXhjV0FBPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg4NTEyNjE0CWZpbGU6U0hVRlROXzAuMi44X3g2NC1zZXR1cC5leGUKdzg1dkVXQTlhT1FsT3Q1dTVudzdycGg0cUpqKzhkWWpRcU12MEF6eG0rQnBwNU9NVnZoYmdrVFIxcXk0N0dSVXNab2dDRkh2VUVPVmZEUDl5a1VPRGc9PQo=",
"url": "https://gitea.itm-technologies.de/ITM-GmbH/shuftn-releases/releases/download/v0.2.8/SHUFTN_0.2.8_x64-setup.exe"
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRbENEalUzQ3RFRHhzUjE0VEd6WDJDK3FCazRieExqMzdQWmQ4T1B3SzNzZERDUUlkTGViNGxET1JlYmxVT0s2V3htNW1BYmxrMjZURkhIbVc4a0phNkdFOVEveHI5T0FNPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg4NTM0NzU1CWZpbGU6U0hVRlROXzAuMy4xX3g2NC1zZXR1cC5leGUKaVVaTjRTSGxwc3pyNGRSODdMWWc4bVgxaFRhMWVhVE5CcWRja0hhaGpla0NIRGEwb0Q1aExJUmxkelZZaUQ4RngwK0FVTXJtWDZ6TDBxNDZORDJnQnc9PQo=",
"url": "https://gitea.itm-technologies.de/ITM-GmbH/shuftn-releases/releases/download/v0.3.1/SHUFTN_0.3.1_x64-setup.exe"
}
}
}