1.7 KiB
Codex-Prompt — Durchstich
Kopiervorlage für Codex. Erst Codex-Briefing.md + Projektbeschreibung.md
lesen, dann NUR den Durchstich bauen (nicht mehr).
Baue den Durchstich des Mail-Graveyard (Go-Single-Binary, Hausstil steht als
Stub-Gerüst). Ziel: ein Konto, nur den Posteingang, sauber und wiederholbar
umziehen. Lies zuerst Codex-Briefing.md und Projektbeschreibung.md; die 6
harten Regeln sind bindend.
Umfang des Durchstichs:
02-database.go: SQLite-Schema anlegen (accounts, folder_map, copied, jobs), plusGetAccount,ListAccounts,SaveAccount,AlreadyCopied,MarkCopied.04-imap-source.go:OpenIMAPSourcefür IMAP mit allen drei Security-Modi (tls/starttls/none) undSrcInsecure.Folders()(mit SPECIAL-USE + Delim) undFetch("INBOX")(UID FETCH BODY[] FLAGS INTERNALDATE, streamend).05-imap-target.go:OpenIMAPTarget(gleiche Security-Logik),Folders(),Delim(),EnsureFolder,Appendmit Flags + INTERNALDATE.06-mbox.go:MboxWriter+Append(korrektes "From "-Trennen, >From-Quoting).07-migrate.go:migrateAccountfür nur "INBOX": pro Mail Message-ID gegencopiedprüfen; sonstAppend(IMAP) und mbox schreiben, dannMarkCopied.RunMigration(name, false)ruft es für ein Konto auf.main.go --run <konto>muss durchlaufen.
Bewusst NOCH NICHT: Web-CRUD, Viewer, Weiterleiten, alle Ordner rekursiv,
Rollen-Mapping (11-folders.go), --watch, POP3. Nur INBOX, nur CLI.
Abnahme: Konto per SQL/Seed eintragen (Klartext-IMAP-Quelle testen!),
./mail-graveyard --run test zweimal laufen lassen → beim zweiten Mal werden
0 Mails kopiert (Idempotenz), Ziel-INBOX und lokale mbox enthalten dieselben
Mails mit erhaltenen Flags und Original-Datum.