docs(quick-260917-kgc): Aktenstand — Update in der Desktop-App, alle Nachweise erbracht, Wiedereinstieg bereinigt
Quick 260917-kgc (Plan/Recherche/Bericht/Verifikation) und Schnellfixa6d1a64in der Quick-Task-Tabelle; Nachweise in allen sechs Berichten nachgetragen (Playwright lokal, CI-Laeufe 382-384, Windows-Test-VM: In-App-Update7479cb4->a6d1a64). Ueberholte .continue-here-Dateien entfernt, Desktop-Client-Todo geschlossen. Dieser Push aendert nichts unter apps/desktop -- er ist zugleich der Beweisfall 2 des CI-Desktop-Skips (Pakete aus dem Zwischenspeicher). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016g2npLxzH5gZpg8s2S6vKh
This commit is contained in:
+10
-8
@@ -6,8 +6,8 @@ current_phase_name: desktop-client-fertigstellen
|
||||
status: verified
|
||||
stopped_at: "Quick-Task 260917-jn2 abgeschlossen (3 Commits: feat(desktop), feat(web), docs); Windows-VM-Bedienprobe steht durch Orchestrator aus"
|
||||
last_updated: "2026-09-17T12:55:59.549Z"
|
||||
last_activity: 2026-09-17
|
||||
last_activity_desc: Version 1.2.0 freigegeben; publish-release.sh nimmt nie mehr die oeffentliche Gitea-Adresse (Host-Gateway/localhost)
|
||||
last_activity: 2026-09-18
|
||||
last_activity_desc: Sechs Auftraege nach 1.2.0 gebaut, gepusht, getestet — u. a. Update in der Desktop-App (signiert), CI-Desktop-Skip, Favoriten-Symbol/-Sortierung
|
||||
state_head: 4d485432c003a6caf68f6d85aff7de0bd27794e2
|
||||
progress:
|
||||
total_phases: 18
|
||||
@@ -30,8 +30,8 @@ See: .planning/PROJECT.md (updated 2026-07-17)
|
||||
|
||||
Phase: 18 (desktop-client-fertigstellen) — COMPLETE (2026-09-17, Verifikation passed, Windows-Bedienprobe bestanden)
|
||||
Plan: 6 of 6
|
||||
Status: Alle 18 Phasen abgeschlossen; Version 1.2.0 freigegeben. Kein laufender Meilenstein. Naechste Arbeit: vier Quick-Tasks (drei Wuensche des Users + CI-Desktop-Bau ueberspringen, wenn apps/desktop unveraendert)
|
||||
Last activity: 2026-09-17 - Quick 260917-jdf/jdh/jdd/jn2 abgeschlossen (Bildmarke, CI-Skip, Favoriten, Desktop-Adresse), Browser-Nachweis lokal; 260917-kgc (In-App-Updater) in Planung
|
||||
Status: Alle 18 Phasen abgeschlossen; Version 1.2.0 freigegeben. Kein laufender Meilenstein. Nach 1.2.0 auf main (Beta): Bildmarke in Akzentfarbe, CI-Desktop-Skip, Favoriten-Symbol/-Sortierung, Desktop-Server-Adresse, Update in der App (signiert), Versionszeile auf der Setup-Seite — alles verifiziert und auf VM/CI nachgewiesen
|
||||
Last activity: 2026-09-18 - Quick 260917-kgc (Update in der App) + Schnellfix a6d1a64 abgeschlossen; alle Nachweise erbracht (lokaler Browser, CI 382-384, Windows-VM: In-App-Update 7479cb4 → a6d1a64)
|
||||
|
||||
Progress: [██████████] 99%
|
||||
|
||||
@@ -441,6 +441,8 @@ Gerettet aus `.continue-here.md`. Relevant fuer die noch offenen Live-Tests.
|
||||
| 260917-jdh | **CI: Job `desktop` ueberspringt den Rust-Bau, wenn der Desktop-Stand unveraendert ist.** Neues `.gitea/scripts/desktop-stamp.sh` (`stamp`: Version aus `desktop-version.sh --print` + voller SHA von `git log -1 -- apps/desktop desktop-version.sh desktop-collect.sh desktop-stamp.sh ci.yml`; `check`: Manifest/Kanal/Version/Groesse/sha256 des restaurierten `desktop-dist`). Drei neue Schritte direkt nach dem Checkout (stamp → `cache/restore` `desktop-dist-stamp-<Stempel>` nur auf main → check), 13 Bau-Schritte mit `if: steps.reuse.outputs.reuse != 'true'`, nach echtem Bau `cache/save` unter dem Stempel; `Uebergabe an publish` und `publish` unveraendert; Tags bauen immer. Doku: Betriebshandbuch Kap. 10, ci-cd-setup.md 4/6, Entwicklungsanleitung. Verifikation passed 9/9 (lokale Proben). **Offen: CI-Beweis nach Push** (baut → Docs-Push ueberspringt → Desktop-Push baut neu; `cache/save` bei belegtem Schluessel beobachten). | 2026-09-17 | 8c4aaa5,e7633e1 | [260917-jdh-ci-job-desktop-ueberspringen-wenn-apps-d](./quick/260917-jdh-ci-job-desktop-ueberspringen-wenn-apps-d/) |
|
||||
| 260917-jdd | **Favoriten-Widget: Symbol trotz Zertifikatsfehler/interner Adresse, Favoriten sortierbar.** API: `undici@7.28.0` (exakt, war schon im Lockfile) — `LENIENT_TLS_AGENT` (`rejectUnauthorized: false`) als Dispatcher NUR in `fetchWithRedirectGuard`, SSRF-Schutz (DNS/private IPs/Redirects/Timeouts/Deckel) byteweise unveraendert; `PUT /favorites/order` `{widgetId, ids}` VOR den `:id`-Routen, `reorder()` in `withTenantTransaction` mit `userId`+`widgetId` je Eintrag, eine 400-Meldung; Icon-Proxy mit `nosniff` + CSP sandbox. Web: `FavoriteIcon` Kette Proxy-Bild → bei Fehler Direktbild `{origin}/favicon.ico` (nur http/https, no-referrer) → Buchstabe; Pfeile „Nach oben/unten“ im Bearbeitungsmodus, optimistisch + Reload bei Fehler; Altbestand `position 0` normalisiert sich beim ersten Klick. Befund: `discoverFavoriteIconUrl` liefert nie null (immer Origin-Rueckfall) — deshalb haengt der Browser-Ersatzweg am Bildfehler. API 1101 / Web 429 Tests. Browser: `self-signed.badssl.com` → Proxy-Symbol; `http://192.168.13.11:3002` → Proxy 502 → Direktbild; Sortierung ueber Reload, DB-Positionen 0..3. Verifikation 15/15 + Browser. | 2026-09-17 | 2a562d0,b18ac25,b023d6f | [260917-jdd-favoriten-widget-favicon-ersatzweg-bei-u](./quick/260917-jdd-favoriten-widget-favicon-ersatzweg-bei-u/) |
|
||||
| 260917-jn2 | **Desktop-Client: Server-Adresse sichtbar und nachtraeglich aenderbar.** Rust: `TrayIconBuilder::with_id("main")`, `TrayItems { connected, update }` in `app.manage`, `apply_server()` setzt Tooltip `Tessera – {host}` + gesperrte Menuezeile `Verbunden mit {host}` an einer Stelle; Tray-Eintrag `Server-Adresse ändern…` navigiert zu `setup_page_url()` (`http://tauri.localhost/setup.html` unter Windows, sonst `tauri://localhost/setup.html`); Commands `get_server_url`/`open_server` (kein Capability-Eintrag noetig — Remote-Origin darf keine Commands rufen); `parse_server_url` (nur http/https) gemeinsam; `spawn_version_check` herausgezogen, `update`-Klick liest Adresse per `stored_server_url` beim Klick. setup.html: Vorbelegung, „Aktuell verbunden mit“, „Abbrechen“. Web: Einstellungen → Desktop-App zeigt im Client „Verbunden mit: {origin}“ + Hinweis (`settings.desktop.*`). 18 Rust-Tests, Web 431. Browser: Web-Block mit Cookie bestaetigt. Verifikation human_needed: **Windows-VM-Probe mit CI-Paket offen** (Tooltip, Menuezeile, Adresse aendern/Abbrechen, Wechsel ohne Neustart). | 2026-09-17 | 29c132e,4c79874,4d48543 | [260917-jn2-desktop-client-aktuelle-server-adresse-s](./quick/260917-jn2-desktop-client-aktuelle-server-adresse-s/) |
|
||||
| 260917-kgc | **Desktop-Client: Update in der App (tauri-plugin-updater, signierte Pakete).** Client: Plugin 2.11 + `semver`, `plugins.updater.pubkey` (minisign; privater Schluessel + Passwort NUR unter `~/.tessera/desktop-updater/` auf dem Dev-Rechner, Gitea-Secrets `TAURI_SIGNING_PRIVATE_KEY`/`_PASSWORD`), Endpunkt zur Laufzeit `{server}/api-proxy/desktop/update?target&arch¤t&base`, `is_update_newer` (hoehere Basis → Update; gleiche Basis nur bei `beta.g<sha7>` mit anderem Commit; kleinere/gleiche Live → nichts), Pruefung 15 s / Download 600 s (Plugin-Timeout gilt fuer beides), Tray „Auf Version X / Beta-Stand <sha7> aktualisieren" → Fortschritt → passiver NSIS-Installer startet die App neu (Linux: `app.restart()`), Fehler → Benachrichtigung + Download-Seite im Browser, `http://` → gesperrt „Update nur über https möglich". API: `GET /desktop/update` (statisch VOR `download/:platform`, `base` nur Origin, 204 ohne `signature`/`updateVersion`). CI: `createUpdaterArtifacts`, Secrets nur an den zwei `tauri build`-Schritten, `desktop-collect.sh` schreibt `signature` + `updateVersion` (`X.Y.Z-beta.g<sha7>`), `desktop-stamp.sh check` verlangt beides. 33 Rust-Tests, 23 API-Tests. **Nachweise erbracht:** CI baut `.sig` fuer beide Plattformen (Cross-Bau rustls ok); alpha-Endpunkt 200/400; Windows-VM: Client 7479cb4 → Tray-Klick → Neustart als a6d1a64, Adresse erhalten. Bereits installierte Clients (≤ 1.2.0) brauchen einmal den Browser-Installer. | 2026-09-17 | 678ba51,de81c74,7004b5b,7479cb4 | [260917-kgc-desktop-client-update-in-der-app-herunte](./quick/260917-kgc-desktop-client-update-in-der-app-herunte/) |
|
||||
| fast | **Desktop-Client: Setup-Seite zeigt Version und Stand der App** („Tessera-App 1.2.0 · Stand a6d1a64"; ohne Stempel nur Version) — Command `get_client_info`, Helfer `client_info_label` (2 Tests), `<p id="client-info">` in setup.html, CHANGELOG. Diente zugleich als zweiter Desktop-Stand fuer den Update-Nachweis. 35 Rust-Tests. | 2026-09-18 | a6d1a64 | — |
|
||||
|
||||
## Deferred Items
|
||||
|
||||
@@ -482,8 +484,8 @@ sind. Kein Anlass, sie vorher erneut vorzulegen.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-09-17T12:55:59.226Z
|
||||
Resumed: 2026-09-17 — Sitzung ueber /gsd-resume-work fortgesetzt (keine HANDOFF.json; beide .continue-here-Dateien ueberholt, Arbeitsbaum leer, main == origin/main 38c1400).
|
||||
Stopped at: Quick-Task 260917-jn2 abgeschlossen (3 Commits: feat(desktop), feat(web), docs); Windows-VM-Bedienprobe steht durch Orchestrator aus
|
||||
Last session: 2026-09-18T09:30:00Z
|
||||
Resumed: 2026-09-17 — Sitzung ueber /gsd-resume-work fortgesetzt; sechs Auftraege des Users komplett abgearbeitet (Quick 260917-jdf/jdh/jdd/jn2/kgc + Schnellfix a6d1a64), alle mit Plan-Pruefung, Verifikation und Nachweis (lokaler Browser via Playwright, CI-Laeufe 382-384, Windows-Test-VM 8233).
|
||||
Stopped at: Alles committet und gepusht. Nichts angefangen. Beta (alpha) laeuft mit a6d1a64 (User hat gepullt). Live (tessera.ctl.de) steht auf v1.2.0 — der dortige Client hat den Updater noch nicht; erst die naechste Freigabe (1.3.0, neue Funktionen) bringt ihn; danach aktualisieren sich Clients per Tray-Klick. Offen fuer den User: eigenen Arbeitsplatz-Client einmal per Browser-Installer erneuern (alter Stand ohne Beenden-Fix/Updater). Signierschluessel: ~/.tessera/desktop-updater/ (Dev-Rechner) — sichern; Verlust = neue Clients per Installer noetig. Letzter offener CI-Beweis (Docs-Push ueberspringt den Desktop-Bau) = der Lauf zu diesem Aktenstand-Commit. Beide .continue-here-Dateien entfernt (ueberholt), Desktop-Todo geschlossen.
|
||||
Resume file: None
|
||||
Last activity: 2026-09-17 - Quick 260917-jdf/jdh/jdd/jn2 abgeschlossen (Bildmarke, CI-Skip, Favoriten, Desktop-Adresse), Browser-Nachweis lokal; 260917-kgc (In-App-Updater) in Planung
|
||||
Last activity: 2026-09-18 - Quick 260917-kgc (Update in der App) + Schnellfix a6d1a64 abgeschlossen; alle Nachweise erbracht (lokaler Browser, CI 382-384, Windows-VM: In-App-Update 7479cb4 → a6d1a64)
|
||||
|
||||
Reference in New Issue
Block a user