Mehrfachauswahl öffnet jetzt EIN Ablagefenster (?messageIds=1,2,3) statt eines
Fensters je Nachricht. Der dafür schon vorhandene, bisher unerreichbare Multi-Pfad
in dialog.js hatte drei Fehler, die dabei aufgeschlagen wären:
- Der Anhang-Haken wurde aus der ERSTEN Mail abgeleitet: hatte die keine Anhänge,
fielen die Anhänge aller übrigen Mails still weg.
- Die Anhangsliste zeigte die Anhänge von Mail 1 mit wirkungslosen Haken.
- Der „bereits abgelegt"-Banner galt nur für Mail 1, sah aber nach einer Aussage
über die ganze Auswahl aus.
Weiter:
- Server-/Zugangsdaten-Wechsel verwirft jetzt auch die serverspezifischen Caches.
auth:logout leert zusätzlich ARCHIVED_CACHE; mit scope:"server" fliegen die
gecachte Schrankliste sowie defaultCabinetId/dialogByCabinet raus, weil deren
GUIDs nur auf dem alten Server existieren.
- Retry nach einem Teilfehler lud bereits übertragene Teile erneut hoch und
erzeugte Dubletten. Jeder Teil (eml/pdf/Anhang) wird nun je Ziel einmal
hochgeladen; dieselbe Mail lässt sich dadurch auch bewusst in ein zweites
Archiv ablegen.
- ARCHIVED_CACHE wächst nicht mehr unbegrenzt (500 Einträge, ältester fliegt).
- HTTP 401/403 liefern statt des nackten Statuscodes eine verständliche Meldung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Erster C2O-Parität-Schritt. Die RFC822-Message-ID wird normalisiert ins Feld
EML_ID geschrieben und zur Dubletten-Erkennung genutzt.
- mail.js: rfcMessageId aus den Mail-Headern
- docuware.js: normalizeMessageId, cabinetFieldNames, getSearchDialogId,
findByMessageId (DialogExpression, Format gem. Postman-Collection), documentViewUrl
- background.js: ✓-Badge am Nachrichten-Button beim Öffnen (Suche im Standard-
schrank, Cache, archive:done-Refresh); lädt dafür lib/docuware.js
- dialog: EML_ID beim Upload mitschreiben; „bereits abgelegt"-Banner mit
„Dokument öffnen"; Dubletten-Warnung beim Ablegen (warnen, „Trotzdem ablegen")
UX-Entscheidung: Prüfung beim Öffnen (1 Schrank) + Duplikat warnen/erlauben.
Schema bestätigt (EML_ID existiert). TB-Runtime-Test steht noch aus.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Das DocuWare-Passwort wird nicht mehr in storage.local abgelegt. Das
Hintergrundskript fungiert als Auth-Broker und hält den OAuth-Token nur im
Speicher der TB-Sitzung. Der Ablage-Dialog fragt das Passwort einmalig per
Overlay ab, holt darüber den Token und verwirft das Passwort sofort.
- store.js: password aus DEFAULTS entfernt; Settings.set() löscht password defensiv
- auth.js: setToken/currentToken für Token-Transfer, Cookie-Modus als Sentinel
- background.js: Broker (auth:status/auth:logon/auth:logout)
- dialog: ensureAuth() + Passwort-Overlay statt direktem Auth.logon
- options: Passwort nur transient für Test/Diagnose, nicht gespeichert; Export ohne Passwort
- manifest: lib/store.js + lib/auth.js ins Hintergrundskript geladen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Thunderbird-MailExtension zum Ablegen von E-Mails in DocuWare
(.eml + PDF + Anhänge), dynamische Indexfelder aus dem Store-Dialog,
Auswahllisten, Identity-Service-Login. Self-distribution-Updates
über updates.json auf eigenem Gitea.