Files
MindSift/CHANGELOG.md
T
sandrodachandClaude Opus 5.5 cc68d3f334
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m58s
fix(workspace): keep the cursor in a block that turns into a code block
Converting via /code or ``` swapped the text field for the code editor's
and left the focus nowhere, so further typing triggered app shortcuts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:48:35 +01:00

5.9 KiB
Raw Blame History

Changelog

Alle nennenswerten Änderungen an MindSift stehen in dieser Datei.

Das Format folgt Keep a Changelog, die Versionsnummern folgen ab v0.6.0 Semantic Versioning. Solange die Hauptversion 0 ist, können sich API und Datenformate mit jeder Minor-Version ändern; solche Änderungen stehen unter „Changed“ bzw. „Removed“ und sind mit Achtung markiert.

Unreleased

Added

  • Eigene Spracherkennung (optional): Mit STT_URL schickt MindSift Aufnahmen an einen selbst betriebenen Whisper-Server (OpenAI-kompatibel, z. B. speaches) statt an Google oder Microsoft. Einstellung nur per Umgebungsvariablen (STT_*) inklusive Grenzwerten; docker-compose.yml bringt den Dienst whisper als Profil mit, das Modell lädt MindSift beim ersten Start selbst. Administration → Server & Isolation zeigt den aktiven Modus und bietet eine Testaufnahme. In der Demo bleibt es bei der Browser-Erkennung.
  • API: POST /voice/transcribe, GET /admin/voice; /auth/status meldet voice.mode.
  • Code-Blöcke in Notizen: Sprachauswahl (rund 50 Sprachen, bei Bedarf nachgeladen), Farben beim Tippen im Stil von VS Code Dark+/Light+ für alle Themes, „Kopieren“, Tab/Shift+Tab rückt ein und aus. /code yaml oder ```yaml legt die Sprache direkt fest.

Changed

  • Workspace-Seitenleiste wie ein Datei-Explorer: angeheftete Notizen oben, darunter Ordner und Notizen ohne Zwischenüberschriften.
  • Spracheingabe in Quick Dump, im mobilen Erfassen-Sheet und beim Halten des +-Knopfs folgt der Server-Einstellung: mit eigenem Whisper-Server funktioniert sie in allen Browsern (auch Firefox), mit Live-Wellen während der Aufnahme und „Wird erkannt…“ danach. Ohne Unterstützung im Browser oder mit STT_DISABLED=true ist das Mikrofon ausgeblendet statt einer Fehlermeldung.

0.6.1 - 2026-10-29

Fixed

  • Notizen: Wer im Rhythmus tippte (kurze Pausen zwischen den Wörtern), bekam Konfliktkopien gegen sich selbst, auch in nicht geteilten Notizen. Mehrere ungesendete Änderungen an einem Punkt zählten lokal als mehrere Versionen, beim Server aber als eine.

0.6.0 - 2026-10-29

Added

  • Profil → „Aktive Sitzungen“: Liste der angemeldeten Geräte mit letzter Nutzung und „Abmelden“ je Gerät.
  • API: GET /auth/sessions, DELETE /auth/sessions/{id}.
  • Triage: Gibt es genau eine beschreibbare Liste, setzt „Auf ‹Listenname›“ den Gedanken direkt darauf, ohne Auswahl. Nur lesbar geteilte Listen werden beim Erfassen und in der Triage nicht mehr angeboten.

Changed

  • Achtung: Nach dem Update sind alle Benutzer einmal abgemeldet (neue Sitzungsverwaltung, die alte Sperrliste revoked_tokens entfällt).
  • Achtung: ?token= in der URL von /webhooks/ingest nimmt nur noch API-Keys (mindsift_sec_…) an.
  • Achtung: GET /admin/settings liefert smtpPass nicht mehr; neu ist smtpPassSet.
  • Achtung: PATCH /auth/settings verlangt für password und email das Feld currentPassword, sonst 403.
  • Versionsnummern folgen jetzt Semantic Versioning mit dreiteiligen Tags (v0.6.0); die Kopfzeile zeigt die volle Version (v0.6.0-dev für Entwicklungsstände). Vorabversionen wie v1.0.0-rc.1 verschieben das Image :stable nicht.
  • Das Mengenfeld in Listen öffnet auf dem Handy die Zahlentastatur.

Fixed

  • Große Downloads (Backups, Exporte) brachen nach 30 Sekunden ab, große Importe nach 15 Sekunden Upload (FLAW-38).
  • Der Offline-Start der App funktioniert zuverlässig: Ein altes Script in der Startseite hat bei jedem Aufruf alle Caches des Service Workers gelöscht.

Security

  • Links in Notizen, Aufgaben-Notizen und Impressum öffnen nur noch http, https und mailto; javascript: und ähnliche Links erscheinen als Text. Vorher konnte ein Bearbeiter einer geteilten Aufgabenliste über einen präparierten Link Code im Browser anderer ausführen (FLAW-28).
  • Sicherheits-Header für alle Antworten: Content-Security-Policy (Scripts nur von MindSift selbst, keine Einbettung in fremde Seiten), X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy (FLAW-29).
  • Passwort und Login-E-Mail lassen sich nur noch mit dem aktuellen Passwort ändern; die bisherige Adresse bekommt eine Hinweismail, wenn SMTP eingerichtet ist (FLAW-30).
  • Anmeldungen sind serverseitige Sitzungen: Jedes Gerät lässt sich einzeln abmelden, unbenutzte Sitzungen enden nach 30 Tagen, aktive werden täglich erneuert. Ein neues Passwort meldet alle anderen Geräte ab (FLAW-31).
  • IDs neuer Datensätze haben 96 statt 40 Zufallsbits, Einladungscodes eigene 100 Bit (INV-ABCDE-FGHIJ-KLMNO-PQRST); vorhandene IDs und Codes bleiben gültig (FLAW-32).
  • Registrierung und „Passwort vergessen“ sind pro Adresse begrenzt (20 bzw. 10 Anfragen in 15 Minuten), Einladungscodes lassen sich so nicht durchprobieren (FLAW-39).
  • Ein Einladungscode lässt sich auch bei gleichzeitigen Registrierungen nur einmal einlösen (FLAW-40).
  • Öffentliche Demo: verschickt nichts mehr (Alarme, Testalarme, SMTP-Test, Hinweismails), Server-Einstellungen sind schreibgeschützt, Passwort, E-Mail, Sitzungen und Konten der gemeinsamen Demo-Konten lassen sich nicht ändern; die Sitzungsliste zeigt nur das eigene Gerät (FLAW-33).
  • Das SMTP-Passwort wird nie mehr an den Browser geschickt; leer lassen behält das gespeicherte (FLAW-34).
  • ?token= beim Webhook-Ingest nimmt nur noch API-Keys an, keine Sitzungs-Tokens (FLAW-35).
  • Anfragekörper sind auf 2 MB begrenzt, Notiz-Sync auf 8 MB, Importe auf 101 MB (FLAW-36).
  • Konto löschen entfernt auch die Server-Backups des Kontos (FLAW-37).