From 2164cd537a8645f39a055bfa3cff77b8ef02822d Mon Sep 17 00:00:00 2001 From: Schalli Date: Wed, 16 Sep 2026 16:23:40 +0200 Subject: [PATCH] docs(18-02): complete CI-Pipeline fuer Desktop-Client plan Co-Authored-By: Claude Opus 5 (1M context) --- .planning/ROADMAP.md | 4 ++-- .planning/STATE.md | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index c0a866b..c63b3a5 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:** 1/6 plans executed +**Plans:** 2/6 plans executed Plans: **Wave 1** @@ -675,7 +675,7 @@ Plans: **Wave 2** *(blocked on Wave 1 completion)* -- [ ] 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-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 - [ ] 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 diff --git a/.planning/STATE.md b/.planning/STATE.md index 223f2b1..990117d 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-01-PLAN.md -last_updated: "2026-09-16T14:13:35.293Z" +stopped_at: Completed 18-02-PLAN.md +last_updated: "2026-09-16T14:23:19.503Z" 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: c721464af24998701df20299f4f799efdfcd309f +state_head: ab75911b720a388adbabf829aae9a240495a04f9 progress: total_phases: 18 completed_phases: 15 total_plans: 89 - completed_plans: 83 + completed_plans: 84 milestone_name: Plattform-Berechtigungen --- @@ -28,12 +28,12 @@ See: .planning/PROJECT.md (updated 2026-07-17) ## Current Position -Phase: 18 (desktop-client-fertigstellen) — READY TO EXECUTE -Plan: 3 of 3 -Status: Phase abgeschlossen und im Browser gegengeprueft — bereit fuer /gsd-ship -Last activity: 2026-09-16 - Aenderungsliste (260916-dcz: CHANGELOG.md, Seite "Was ist neu", Gitea-Release je Tag, Release v1.0.0 angelegt) + Uebersetzungs-Nachtrag c3d8e16; Beta-Abbild c3d8e16 bereit. Freigabe der naechsten Version (1.1.0) auf Zuruf des Users: CHANGELOG Unveroeffentlicht -> 1.1.0, live ff-merge, Tag, Push +Phase: 18 (desktop-client-fertigstellen) — IN PROGRESS +Plan: 2 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 -Progress: [██████████] 100% +Progress: [███░░░░░░░] 33% ## Performance Metrics @@ -124,6 +124,7 @@ Progress: [██████████] 100% | Phase quick-260914-ebg P01 | 6min | 3 tasks | 4 files | | Phase quick-260914-eym P01 | 1 Sitzung | 3 tasks | 29 files | | Phase 18 P01 | 13min | 2 tasks | 15 files | +| Phase 18 P02 | 8 min | 2 tasks | 3 files | ## Accumulated Context @@ -309,6 +310,7 @@ Recent decisions affecting current work: - [Phase 17]: [quick-260914-ebg]: Zielrollen-Riegel als eigenstaendige Pruefung nach der Mandantengrenze in UserController.update()/remove() eingezogen (Vorlage AuthService.adminResetPassword, T-FH9-04) — WINDOWS #29 geschlossen - [Phase 17]: [quick-260914-eym]: forSystem(prisma) als Schwesterhelfer (eigene Detektor-Erkennungsform, Umkehrung der 3b-Begruendung); system_read_policy FOR SELECT auf fuenf Tabellen, SmtpConfig nicht (Mail-Startpfad entfernt, Transport je Versand nach Mandant); DKV-Planer Auftrag je Mandant (promote); Single-Flight-Riegel bleibt prozessweit -> WINDOWS #37 - [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). ### Pitfalls & Anti-Patterns @@ -461,8 +463,8 @@ sind. Kein Anlass, sie vorher erneut vorzulegen. ## Session Continuity -Last session: 2026-09-16T14:13:35.017Z +Last session: 2026-09-16T14:23:19.237Z 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-01-PLAN.md +Stopped at: Completed 18-02-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