Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016g2npLxzH5gZpg8s2S6vKh
5.3 KiB
context, phase, task, total_tasks, status, last_updated
| context | phase | task | total_tasks | status | last_updated |
|---|---|---|---|---|---|
| default | betrieb-nach-1.2.0 | null | 0 | paused | 2026-09-18T10:06:16.288Z |
Wiedereinstieg — v1.2.0 live, Beta mit In-App-Updater, nichts angefangen
Critical Anti-Patterns
Alle aus tatsaechlichen Fehlschlaegen dieser und der vorigen Sitzungen.
| Muster | Beschreibung | Schwere | Vermeidung |
|---|---|---|---|
| Alter Client als Beleg | User meldete „Beenden geht nicht" — sein installierter Client war ein Stand VOR dem Fix (alpha lieferte bis Mittag 280aab6). |
blocking | Zuerst den installierten Stand feststellen (Setup-Seite zeigt seit a6d1a64 „Tessera-App X.Y.Z · Stand "; Tray-Menue „Auf Beta-Stand … aktualisieren" = alt), dann erst am Code suchen. |
| Plugin-Timeout gilt fuer den Download | updater_builder().timeout(15s) wird vom Plugin auch fuer download_and_install uebernommen — 100-MB-AppImage waere abgebrochen. |
blocking | Vor download_and_install update.timeout = Some(600 s) setzen (so gebaut); bei Aenderungen am Update-Fluss nicht anfassen. |
| Radio-Klick im NSIS verfehlt | „Bereits installiert"-Seite: Klick auf „Nicht deinstallieren" (465,401) ging einmal daneben → Deinstallation lief zuerst (Daten blieben). | advisory | Nach jedem Installer-Schritt Screenshot pruefen statt Klickfolge blind abzuspulen. |
| Hintergrund-Tunnel stirbt | run_in_background beendet den socat-Tunnel nach 10 min; pkill -f socat traf die eigene Shell. |
advisory | setsid -f socat … (Port 8017) und kill <pid> gezielt. |
| Zwei Schreiber auf einer Datei | Executoren strikt nacheinander; Planer nur lesend, nie committen. | advisory | CHANGELOG/i18n: nur Zeilen ergaenzen, eigene Namensraeume. |
git checkout -- <Datei> als Rueckweg |
setzte auch unkommittierte Nutz-Aenderung zurueck. | advisory | Patchdatei + git apply -R. |
<current_state>
Gemessen 2026-09-18 10:06Z: git status --porcelain leer, main == origin/main (efbd6e8), keine async-jobs, nichts angefangen.
Beta (alpha.tessera.ctl.de): a6d1a64 (User hat gepullt) — mit In-App-Updater, CI-Desktop-Skip, Favoriten-Symbol/-Sortierung, Desktop-Server-Adresse, Bildmarke in Akzentfarbe, Versionszeile auf der Setup-Seite.
Live (tessera.ctl.de): v1.2.0 — OHNE Updater; kommt mit der naechsten Freigabe (1.3.0, neue Funktionen), auf Zuruf.
CHANGELOG ## Unveröffentlicht: gefuellt (Neu/Geändert/Behoben) — bei Freigabe umbenennen (Kap. 9).
Signierschluessel: ~/.tessera/desktop-updater/ (Dev-Rechner), Gitea-Secrets TAURI_SIGNING_PRIVATE_KEY/_PASSWORD; vom User extern gesichert.
Tests: Web 431 / API 1101+23 / Rust 35. Ledger WINDOWS.md: unveraendert 15 offen (nur #35/#36/#37 ohne Mandantenbezug).
</current_state>
<completed_work>
Sitzung 2026-09-17/18: sechs Auftraege des Users komplett — Quick 260917-jdf (Bildmarke), -jdh (CI-Skip), -jdd (Favoriten), -jn2 (Server-Adresse), -kgc (Update in der App), Schnellfix a6d1a64 (Versionszeile); jeweils Plan → Pruefer → Executor → Verifier → Nachweis (Playwright lokal, CI-Laeufe 382-385, Windows-Test-VM: In-App-Update 7479cb4 → a6d1a64 per Tray-Klick). Details: Quick-Task-Tabelle in .planning/STATE.md, Berichte unter .planning/quick/260917-*/.
</completed_work>
<remaining_work> Nichts Angefangenes. Naechste Arbeit kommt vom User. Ohne Termin: Freigabe 1.3.0 (bringt Updater auf Live), Ship Phase 17 (blockiert bei open_count 15), Ledger #35/#36/#37. Nicht ansprechen: Mandantenfaehigkeit, Lizenzierung. </remaining_work>
<decisions_made>
Siehe HANDOFF.json — Updater-Regeln (nur https, Beta-Commit-Vergleich, Live gleicher Basis = kein Update), Schluesselablage, CI-Stempel, Favoriten-TLS nur an der Fetch-Stelle.
</decisions_made>
Required Reading (in order)
.planning/STATE.md— Session Continuity + Quick-Task-Tabelle (Zeilen 260917-jdf … kgc, fast)CHANGELOG.md— Regel: jede Aenderung sofort unter## Unveröffentlichtdocs/anleitung-betrieb.mdKap. 9 (Freigabe) und Kap. 10 (Desktop-Pakete, Signierschluessel, Skip)- Claude-Memory
reference_windows_test_vm.md— VM-Bedienung inkl. Klickkoordinaten, Paketbezug ausapi:beta
Infrastructure State
- Live tessera.ctl.de (
IMAGE_TAG=live, v1.2.0); Beta alpha 192.168.13.12 (a6d1a64). Deploy macht der User (pull +up -d --force-recreate api web). - Lokal:
db,api,weblaufen (web/api aus4d48543); Admin admin/admin123; DB ohne Host-Port. - Gitea 1.26.2 + Runner auf diesem Rechner (ein Auftrag gleichzeitig); CI ueber API localhost:3002 (Token aus Push-URL, nie ausgeben); Skript
scratchpad/ci-wait.sh <sha7>wartet auf einen Lauf (Scratchpad ist sitzungsgebunden — bei Bedarf neu anlegen). - Windows-Test-VM 8233: Client
a6d1a64installiert, mit alpha verbunden; Tunnel/Dateiserver beendet. - Registry-Abbild
localhost:3002/schalli/tessera-ctl/api:betaenthaelt die CI-Pakete (/app/desktop-dist/) — perdocker cpholbar.
<next_action>
/gsd-resume-work, dann das, was der User nennt — als /gsd-quick --validate mit voller Kette (Planer lesend, Executoren nacheinander, Nachweis per Playwright/VM, dann Push). Bei „Version freigeben": Rezept Kap. 9; dabei 18-UAT #2 (Release-Anhaenge am Tag) beobachten.
</next_action>