diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index e1b4ad4..b6fd7ea 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -666,7 +666,7 @@ Plans (Wellenstruktur — streng nacheinander, alle drei fassen Schema, Controll 3. Der installierte Client zeigt nach Eingabe der Server-Adresse die Tessera-Anmeldung, laeuft mit Tray/Schliessen-ins-Tray/Autostart wie in Phase 6 und meldet eine neuere Client-Version mit Link zur Download-Seite 4. Anwender- und Betriebshandbuch beschreiben Installation, Erststart, Tray-Verhalten, Pipeline, Release-Dateien und Umgebungsvariablen -**Plans:** 3/6 plans executed +**Plans:** 4/6 plans executed Plans: **Wave 1** @@ -677,7 +677,7 @@ Plans: - [x] 18-02-PLAN.md — Pipeline (Welle 2): CI-Job desktop (Linux-AppImage mit Tag-Version) + Uebergabe an publish per actions/cache mit hartem Abbruch, Release-Upload (idempotent) in publish-release.sh - [x] 18-03-PLAN.md — Web (Welle 2): lib/desktop.ts, Download-Link auf der Anmeldeseite, Seite Einstellungen → Allgemein → Desktop-App, Seitenleiste, i18n de/en, Tests -- [ ] 18-04-PLAN.md — Client (Welle 2): lib.rs mit check_server/save_server_url, Versionspruefung gegen /api-proxy/desktop/latest, Tray mit Update-Eintrag und Autostart-Haken (Umlaute), tauri-plugin-opener, Erststart-Seite in Sie-Form/Tessera-Gestalt, echter Icon-Satz, lokaler AppImage-Beweis +- [x] 18-04-PLAN.md — Client (Welle 2): lib.rs mit check_server/save_server_url, Versionspruefung gegen /api-proxy/desktop/latest, Tray mit Update-Eintrag und Autostart-Haken (Umlaute), tauri-plugin-opener, Erststart-Seite in Sie-Form/Tessera-Gestalt, echter Icon-Satz, lokaler AppImage-Beweis **Wave 3** *(blocked on Wave 2 completion)* diff --git a/.planning/STATE.md b/.planning/STATE.md index 55f41e3..ecd5a4a 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -4,16 +4,16 @@ milestone: v1.2 current_phase: 18 current_phase_name: desktop-client-fertigstellen status: verified -stopped_at: Completed 18-03-PLAN.md -last_updated: "2026-09-16T14:32:05.734Z" +stopped_at: Completed 18-04-PLAN.md +last_updated: "2026-09-16T14:43:25.735Z" last_activity: 2026-09-16 last_activity_desc: Quick 260910-jab — drei zu kurz greifende RLS-Regeln geschlossen (GroupMembership beide Seiten, ModuleGrant beide Ziele, TenderRssFeedSource Lese-/Schreibsplit), listForUser gebunden, Aktenstand kohaerent -state_head: e96d460b8ecd8cbeab8a78f415976ea6de31bb0e +state_head: 289604a28e326f9909963922ca938c6a8fa7d661 progress: total_phases: 18 completed_phases: 15 total_plans: 89 - completed_plans: 85 + completed_plans: 86 milestone_name: Plattform-Berechtigungen --- @@ -29,7 +29,7 @@ See: .planning/PROJECT.md (updated 2026-07-17) ## Current Position Phase: 18 (desktop-client-fertigstellen) — IN PROGRESS -Plan: 3 of 6 (18-02 abgeschlossen) +Plan: 4 of 6 (18-02 abgeschlossen) Status: 18-02 (CI-Job desktop, Cache-Uebergabe an publish, Release-Anhaenge) fertig; 18-03 (Web-Oberflaeche), 18-04 (Client-Updatepruefung), 18-05 (Windows-Cross-Bau + Pipeline-Beweis), 18-06 (Freigabe) stehen aus Last activity: 2026-09-16 - 18-02: Job desktop (Linux-AppImage, actions/cache) vor publish, Manifest-Pruefung in publish-images.sh, idempotenter Release-Anhang-Upload in publish-release.sh @@ -126,6 +126,7 @@ Progress: [███░░░░░░░] 33% | Phase 18 P01 | 13min | 2 tasks | 15 files | | Phase 18 P02 | 8 min | 2 tasks | 3 files | | Phase 18-desktop-client-fertigstellen P03 | 20 min | 2 tasks | 12 files | +| Phase 18 P04 | 9min | 2 tasks | 15 files | ## Accumulated Context @@ -313,6 +314,7 @@ Recent decisions affecting current work: - [Phase 18]: [18-01]: DesktopController braucht @Inject(DesktopService) explizit, da Vitest ueber esbuild ohne emitDecoratorMetadata transpiliert (sonst desktopService=undefined im echten NestFactory-HTTP-Durchstich). - [Phase 18]: 18-02: Cross-Job-Uebergabe per actions/cache (save/restore, Schluessel exakt am gitea.sha) statt upload-/download-artifact, da diese auf der Gitea-Instanz unzuverlaessig sind. — Pitfall 1 aus 18-RESEARCH.md; publish bricht bei Cache-Fehlschlag hart ab (fail-on-cache-miss + explizite Manifest-Pruefung in Workflow und Skript). - [Phase 18]: Desktop-Download-Link/Einstellungsseite lesen GET /desktop/latest memoisiert und blenden sich ohne Pakete aus — Wiederverwendung des app-version.ts-Musters (Modul-Ebene-Promise, still bei Fehler) +- [Phase 18]: 18-04: api_url() als einzige Stelle mit dem /api-proxy-Rewrite-Praefix; Erststart-Seite spricht nur noch ueber window.__TAURI__.core.invoke statt Modul-Import ### Pitfalls & Anti-Patterns @@ -465,8 +467,8 @@ sind. Kein Anlass, sie vorher erneut vorzulegen. ## Session Continuity -Last session: 2026-09-16T14:32:05.422Z +Last session: 2026-09-16T14:43:25.471Z Resumed: 2026-09-14 — Sitzung ueber /gsd-resume-work fortgesetzt; #29 und 3c als /gsd-quick --validate mit voller Kette durchgefuehrt. -Stopped at: Completed 18-03-PLAN.md +Stopped at: Completed 18-04-PLAN.md Resume file: None Last activity: 2026-09-16 - Completed quick task 260916-k2z: Mehrfach-Kreise je Kalender am Tag; Browser-Pruefung + Push ausstehend diff --git a/.planning/state.json b/.planning/state.json index ee605e5..d760bf5 100644 --- a/.planning/state.json +++ b/.planning/state.json @@ -94,5 +94,5 @@ "label": "Advance to the next step (verify)", "reason": "Phase 18 of 18 · ready to verify" }, - "updated_at": "2026-09-16T14:31:50.856Z" + "updated_at": "2026-09-16T14:43:23.832Z" }