docs(quick): Aktenstand 260917-gyd (Web-Robustheit) + Plan 260917-h2s (Desktop-Erkennung, Beta-Label, deutscher Installer)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-17 12:31:56 +02:00
parent 2868ffee20
commit 98fad866bf
3 changed files with 426 additions and 0 deletions
+1
View File
@@ -434,6 +434,7 @@ Gerettet aus `.continue-here.md`. Relevant fuer die noch offenen Live-Tests.
| 260917-e15 | **Desktop-Client-Icon: T statt "1".** Die fuenf Icon-Dateien in `apps/desktop/src-tauri/icons/` waren mit ImageMagicks internem MSVG-Renderer erzeugt, der `transform="rotate(12 51 21)"` nicht rendert -> gedrehte gelbe Kachel fehlte, App-Symbol sah aus wie eine "1". Satz mit `tauri icon` (resvg) aus `apps/web/src/app/icon.svg` neu erzeugt (nur die fuenf Dateien aus `bundle.icon`, kein icns/android/ios), Pixel-Gate an der Kachelmitte `FFED00FF`, icon.ico 16/24/32/48/64/256. Changelog. Nebenbefund: Erststart-Seite (Inline-SVG im WebView) war nie betroffen. | 2026-09-17 | 16564f4,6bb92dc | [260917-e15-desktop-client-icon-fehlende-gedrehte-ge](./quick/260917-e15-desktop-client-icon-fehlende-gedrehte-ge/) |
| 260917-eta | **Desktop-Client: Tray „Beenden" beendete die App nicht; „Öffnen"/Linksklick holten minimiertes Fenster nicht zurueck.** Auf der Windows-Test-VM reproduziert (tasklist: `tessera-desktop.exe` lief nach „Beenden" weiter; Autostart-Haken im selben Menue funktionierte -> Klick kam an). Ursache: `app.run`-Handler rief bei jedem `RunEvent::ExitRequested` `api.prevent_exit()` — auch fuer `app.exit(0)` aus dem Tray. Fix: Muster `ExitRequested { code: None, api, .. }` (Tauri 2.11.3: `code` None = Nutzer-Interaktion, Some = programmatisch). Dazu `w.unminimize()` vor `show()` in „open" und im Linksklick-Handler (nach Win+D bewirkte „Öffnen" nichts). cargo check/clippy 0 Warnungen, rustfmt (9cb9d2e). Changelog 2 Stichpunkte. | 2026-09-17 | 68a69c6,9ba7456,9cb9d2e | [260917-eta-desktop-client-tray-eintrag-beenden-been](./quick/260917-eta-desktop-client-tray-eintrag-beenden-been/) |
| 260917-gsh | **Akzentfarbe als Hex-Code eingebbar; Bildmarke uebernimmt die Akzentfarbe.** `normalizeHexColor()` in `lib/color.ts` (optionales `#`, 3-stellige Kurzform, Kleinschreibung; 9 Tests), Textfeld neben dem Farbwaehler mit Zwei-Wege-Sync, `aria-invalid` + Fehlertext + gesperrtes Speichern bei ungueltigem Wert (7 Komponententests), i18n `settings.account.accentColorHex/-Invalid`. Gedrehte Kachel in `LogoMark` per Inline-Style `fill: var(--primary, #ffed00)` — folgt `applyAccentColor`, Anmeldeseite bleibt gelb. Tests Web 365 -> 381 / 57 Dateien, tsc 0. | 2026-09-17 | 795c6a4,1601d97,db478e0 | [260917-gsh-akzentfarbe-in-einstellungen-konto-zusae](./quick/260917-gsh-akzentfarbe-in-einstellungen-konto-zusae/) |
| 260917-gyd | **Web-Robustheit: Ruecksprung nach Anmeldung, Sitzungswaechter, Widgets-Seite uebersetzt.** Middleware leitet auf `/login?next=<Pfad>` (Helfer `lib/safe-next.ts`: nur relative Pfade, kein `//`, kein `\\`, kein `/login`; Tests), Anmeldeseite springt nach Erfolg dorthin. Neue Server Action `fetchSessionState()` (authenticated/unauthenticated/unavailable): bei 401/403 oder 200 ohne Benutzer wird das Sitzungscookie geloescht und der Header leitet auf `/login?next=…` — 5xx/Netzwerkfehler bleiben still (kein Redirect bei API-Ausfall). Befund vom Testserver-DB-Reset: `/auth/me` liefert bei geloeschtem Benutzer 200 mit leerem Body. `settings/dashboard`: `common.loading` + `settings.widgets.empty` statt englischer Hartkodierung. Tests Web gruen, tsc 0. | 2026-09-17 | 4b279ea,474d170,2868ffe | [260917-gyd-web-nach-anmeldung-zurueck-zur-ursprueng](./quick/260917-gyd-web-nach-anmeldung-zurueck-zur-ursprueng/) |
## Deferred Items