Responsive Layout & mobile Navigation fuer web/mail-postfach. Baut auf UX-01s offenem Branch auf (PR #298, noch nicht gemergt) - enthaelt daher UX-01s Commits mit.
CSS-Breakpoint-Ansatz (768px, SHL-01 Shell.tsx-Muster uebernommen), Drawer fuer Ordnerbaum auf Mobile (@nexarch/shl Dialog, erster echter Konsument), minimale MessageDetail-Platzhalteransicht (volle UX-02-Detailansicht kommt separat).
Bug gefunden+gefixt (AC3): UX-01s Suchfeld hatte fixe minWidth:260px, Overflow bei 375px - behoben.
AC1-3 real im echten Chrome via Puppeteer getestet (375/768/1440px, echte Touch-Events). 15/15 Layout-Regressionschecks gruen.
Responsive Layout & mobile Navigation fuer web/mail-postfach. Baut auf UX-01s offenem Branch auf (PR #298, noch nicht gemergt) - enthaelt daher UX-01s Commits mit.
CSS-Breakpoint-Ansatz (768px, SHL-01 Shell.tsx-Muster uebernommen), Drawer fuer Ordnerbaum auf Mobile (@nexarch/shl Dialog, erster echter Konsument), minimale MessageDetail-Platzhalteransicht (volle UX-02-Detailansicht kommt separat).
Bug gefunden+gefixt (AC3): UX-01s Suchfeld hatte fixe minWidth:260px, Overflow bei 375px - behoben.
AC1-3 real im echten Chrome via Puppeteer getestet (375/768/1440px, echte Touch-Events). 15/15 Layout-Regressionschecks gruen.
Siehe mail/docs/UX-04-PRUEFPROTOKOLL.md.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick
added 7 commits 2026-10-16 09:18:57 +02:00
Erweitert mail/internal/mailapi (INT-01) um die fuer die Postfach-/
Ordneransicht noetigen Daten, die die bestehende API noch nicht lieferte:
GET /mailboxes (Ordnerbaum aus der mailbox-Facette), mailbox-Filter auf
GET /messages, sowie sender/mailbox in der Listenantwort (Grundlage fuer
Sortierung nach Absender). Reines Durchreichen bereits fertiger
mail/internal/search-Funktionen (Facets/ListByMailbox/SearchWithFilters),
keine neue Suchlogik.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Testinfrastruktur: startet den echten mailapi.Server (echte moduleauth-
Signaturpruefung) als eigenen Prozess auf einem echten TCP-Port, mit
In-Memory-Suchpersistenz und zwei synthetischen Mandanten (einer davon
mit 3000 Nachrichten fuer den Performance-Nachweis). Grundlage fuer den
Frontend-Integrationstest gegen eine echte Backend-API statt eines
fetch()-Mocks. Kein Produktivpfad.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Postfach- und Ordneransicht fuer archivierte Mails (Next.js/React/TS,
@nexarch/shl). Ordnerbaum (aus der flachen Postfachliste der Mail-API
clientseitig aufgebaut), virtualisierte Nachrichtenliste mit Sortierung
nach Datum/Absender/Betreff, Grundsuche. Aufbau nach etabliertem Muster
(web/mail-search fuer die App-Struktur, web/dms-browser fuer Ordnerbaum/
virtualisierte Liste), bewusst schlicht gehalten (Mailpit/MailHog als
Vorbild, nicht die Komplexitaet eines nativen Mailprogramms).
Automatisierte Tests je Akzeptanzkriterium, inkl. eines echten
Backend-Integrationstests (e2e/ux01.e2e.test.ts) gegen den echten
mailapi.Server (mail/cmd/mailpostfach-fixture) mit zwei Mandanten und
einem gleichnamigen Ordner — keine Mandanten-Isolationslogik wird
gemockt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Pruefprotokoll: Zielwerte und Ergebnisse je Akzeptanzkriterium und
Pruefung, inkl. Abgrenzung zur Ausgangslage (Backend-API musste fuer
Ordnerbaum/Absender-Sortierung minimal erweitert werden) und offener
Einschraenkung beim manuellen Test (keine Browser-Automatisierung/kein
laufender Core-Server auf dem Entwicklungshost, daher Ersatzpruefung
ueber den echten Backend-Integrationstest).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Responsives Drei-Spalten-Layout (Ordner/Nachrichten/Detail) fuer
web/mail-postfach: CSS-Breakpoint bei 768px (SHL-Token), mobil wird die
Ordnerliste zu einem Dialog-Drawer und Nachrichtenliste/Detail teilen
sich eine Ansicht per data-mobile-active-Zustand statt fester inline
Breiten, die auf schmalen Viewports horizontal abgeschnitten haetten.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Automatisierte Pruefung: Vitest-Tests fuer die neue Drawer-/Detail-
Zustandslogik (page.test.tsx, MessageList.test.tsx, MessageDetail.test.tsx)
sowie responsive-layout-check.mjs - echter Puppeteer/Chrome-Lauf mit
Viewport-Resize (375/768/1440px) und Touch-Taps gegen die gebaute App,
gleicher Puppeteer-Bestand wie web/mail-search/keyboard-flow-check.mjs.
43/43 Vitest-Tests gruen, 15/15 Pruefungen im Browserlauf.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Pruefprotokoll: Zielwerte und Ergebnisse je Akzeptanzkriterium, inkl.
Rohausgabe des echten Viewport-Resize-/Touch-Laufs und Entscheidungen
(Dialog statt eigenem Drawer-Code, CSS-Breakpoint statt matchMedia,
gefundener/behobener Horizontal-Overflow-Bug im Suchfeld bei 375px).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Konflikte in layout.tsx/page.tsx/messages.ts manuell geloest (responsive Layout + i18n zusammengefuehrt), 56/56 Tests gruen, direkt in main gemergt und gepusht.
Konflikte in layout.tsx/page.tsx/messages.ts manuell geloest (responsive Layout + i18n zusammengefuehrt), 56/56 Tests gruen, direkt in main gemergt und gepusht.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Responsive Layout & mobile Navigation fuer web/mail-postfach. Baut auf UX-01s offenem Branch auf (PR #298, noch nicht gemergt) - enthaelt daher UX-01s Commits mit.
CSS-Breakpoint-Ansatz (768px, SHL-01 Shell.tsx-Muster uebernommen), Drawer fuer Ordnerbaum auf Mobile (@nexarch/shl Dialog, erster echter Konsument), minimale MessageDetail-Platzhalteransicht (volle UX-02-Detailansicht kommt separat).
Bug gefunden+gefixt (AC3): UX-01s Suchfeld hatte fixe minWidth:260px, Overflow bei 375px - behoben.
AC1-3 real im echten Chrome via Puppeteer getestet (375/768/1440px, echte Touch-Events). 15/15 Layout-Regressionschecks gruen.
Siehe mail/docs/UX-04-PRUEFPROTOKOLL.md.
🤖 Generated with Claude Code
Konflikte in layout.tsx/page.tsx/messages.ts manuell geloest (responsive Layout + i18n zusammengefuehrt), 56/56 Tests gruen, direkt in main gemergt und gepusht.
Pull request closed