# 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.