Mail-Graveyard/ui-fixes-brief.md
2026-07-15 00:14:54 +02:00

3.7 KiB

Codex-Brief — UI-Fixes (aus der Sichtprüfung nach dem Rettungslauf)

Vier Befunde aus dem echten Betrieb mit den migrierten dr-gold-Postfaechern.


1. 🔴 Nachrichtenliste nach DATUM sortieren (neueste zuerst)

Befund: Im Ziel-Postfach purzeln die Daten durcheinander: 13 Jul 2026, 14 Jul 2026, 13 Jul 2026, 29 Jan 2020, 24 Jan 2020, …

Ursache — und die ist wichtig zu verstehen: Die Liste sortiert nach UID / Sequenznummer (= Ankunftsreihenfolge). fetchHeaders holt das Fenster start..stop aus NumMessages und dreht es mit reverseHeaders um.

Bei einem normal gewachsenen Postfach ist Ankunftsreihenfolge ≈ Datum. Bei einem migrierten Postfach nicht: Wir haben per APPEND eingespielt und dabei das Original-INTERNALDATE erhalten — die Reihenfolge des Einspielens hat also nichts mehr mit dem Datum der Mail zu tun. Genau das sieht der Nutzer.

Fix:

  • Nach Datum sortieren, neueste zuerst. Schluessel: Envelope.Date, und wenn leer, InternalDate (die Logik in messageHeaderFromFetch gibt es schon).
  • Das Fenster (200) muss die neuesten 200 nach Datum sein, nicht die hoechsten 200 UIDs. Zwei Wege:
    1. IMAP SORT (RFC 5256), wenn der Server es kann: UID SORT (REVERSE DATE) UTF-8 ALL → sortierte UID-Liste, davon die ersten 200 holen. Sauber und serverseitig.
    2. Fallback: AllHeaders(folder) (existiert schon fuers Dedup, holt nur Envelopes, keine Bodies), clientseitig nach Datum sortieren, dann Fenster schneiden.
  • Archiv-Listen (mbox) genauso: aus mbox_index nach Datum sortiert lesen (ORDER BY date DESC), nicht in Dateireihenfolge.
  • Schoen waere: Klick auf die Spalte dreht die Sortierung um (Datum auf/ab).

2. 🟠 Ziel-Postfach: Liste und Vorschau sind vertauscht

Ist: [ Nachrichten-Liste | Vorschau | Ordnerbaum ] Soll: [ Vorschau | Nachrichten-Liste | Ordnerbaum ]

Der Ordnerbaum steht bereits richtig rechts (spiegelbildlich zur Quell-Ansicht, wo er links steht). Nur Liste und Vorschau muessen die Plaetze tauschen — dann stehen sich Quelle und Ziel sauber gegenueber:

QUELLE:  [ Ordnerbaum | Liste | Vorschau ]
ZIEL:    [ Vorschau | Liste | Ordnerbaum ]   <- gespiegelt

3. 🟡 Falscher Platzhaltertext in der Vorschau

Die Vorschau zeigt „Backup-Postfach links waehlen.", obwohl links laengst eines gewaehlt ist und 678 Mails gelistet werden. Der Text gehoert nur in den Zustand „noch keine Mailbox gewaehlt".

Fix: Ist eine Mailbox + Ordner gewaehlt, aber keine Nachricht → „Nachricht waehlen."


4. 🟡 Ordnernamen im Archiv-Baum sind inkonsistent

Im Baum steht „Posteingang" (678) direkt neben „INBOX.Gesendet" (2) — einmal uebersetzt, einmal der rohe Quell-Ordnername.

Die mbox-Dateien heissen nach dem Quell-Ordner (INBOX.mbox, INBOX.Gesendet.mbox). Die Anzeige uebersetzt offenbar nur INBOX → „Posteingang" und laesst den Rest roh.

Fix: Einheitlich. Am besten die Rollen-Erkennung aus 11-folders.go wiederverwenden: INBOX→Posteingang, *.Gesendet/*.Sent→Gesendet, *.Drafts/*.Entwuerfe→Entwuerfe, *.Trash→Papierkorb usw., und den Quell-Praefix (INBOX.) abschneiden. Sonst konsequent gar nicht uebersetzen und ueberall den Quellnamen zeigen — Hauptsache, es ist nicht gemischt.


Abnahme

  1. Ziel-Postfach admin@archiv.dr-gold.com oeffnen → Liste steht nach Datum, neueste oben (nicht mehr 2026/2020/2019 durcheinander).
  2. Archiv colak@dr-gold.de → ebenfalls nach Datum, neueste oben.
  3. Ziel-Ansicht ist gespiegelt: Vorschau links, Liste mittig, Baum rechts.
  4. Vorschau-Platzhalter sagt „Nachricht waehlen.", sobald ein Ordner gewaehlt ist.
  5. Baum zeigt einheitliche Ordnernamen.