Files
tessera-ctl/.planning/.continue-here.md
T
schalli 9009dade81
Tessera CI/CD / Lint & Type Check (push) Successful in 51s
Tessera CI/CD / Tests (push) Successful in 1m5s
Tessera CI/CD / Desktop-Pakete bauen (push) Successful in 18s
Tessera CI/CD / Build & Publish Images (push) Successful in 3m5s
wip: Betrieb nach 1.2.0 pausiert — Wiedereinstieg (HANDOFF.json + .continue-here.md), nichts angefangen
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016g2npLxzH5gZpg8s2S6vKh
2026-09-18 12:07:43 +02:00

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>

Keine. Fuer den User: eigenen Client einmal per Browser-Installer erneuern (alter Stand ohne Beenden-Fix/Updater).

Required Reading (in order)

  1. .planning/STATE.md — Session Continuity + Quick-Task-Tabelle (Zeilen 260917-jdf … kgc, fast)
  2. CHANGELOG.md — Regel: jede Aenderung sofort unter ## Unveröffentlicht
  3. docs/anleitung-betrieb.md Kap. 9 (Freigabe) und Kap. 10 (Desktop-Pakete, Signierschluessel, Skip)
  4. Claude-Memory reference_windows_test_vm.md — VM-Bedienung inkl. Klickkoordinaten, Paketbezug aus api: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, web laufen (web/api aus 4d48543); 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 a6d1a64 installiert, mit alpha verbunden; Tunnel/Dateiserver beendet.
  • Registry-Abbild localhost:3002/schalli/tessera-ctl/api:beta enthaelt die CI-Pakete (/app/desktop-dist/) — per docker cp holbar.

<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>