Files
tessera-ctl/.planning/.continue-here.md
T
schalli 2a820b630c
Tessera CI/CD / Lint & Type Check (push) Successful in 50s
Tessera CI/CD / Tests (push) Successful in 58s
Tessera CI/CD / Build & Publish Images (push) Successful in 2m49s
docs: Arbeitsstand pausiert — v1.1.0 live, nichts angefangen; Handoff fuer die naechste Sitzung
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018N9CD3ebPKm1b32bPpBknY
2026-09-16 12:29:37 +02:00

88 lines
4.7 KiB
Markdown

---
context: default
phase: betrieb-nach-live-gehen
task: null
total_tasks: 0
status: paused
last_updated: 2026-09-16T10:28:05.211Z
---
# Wiedereinstieg — v1.1.0 ist live, nichts angefangen
## Critical Anti-Patterns
Alle aus tatsaechlichen Fehlschlaegen dieser und der vorigen Sitzungen.
| Muster | Beschreibung | Schwere | Vermeidung |
|--------|--------------|---------|------------|
| Zaehlung ohne Ansehen | Der Planer zaehlte fuenf Tastenreihen im Rechner, es sind sechs — die Mindesthoehe schnitt die unterste Reihe ab. Erst der Browser-Blick fand es. | blocking | Zahlen, die eine Groesse tragen, im Browser messen (Bounding-Box, scrollHeight), nicht aus dem Quelltext ableiten. |
| Gespeicherte Werte vergessen | Konstanten zu aendern haette fuer den User NICHTS bewirkt — react-grid-layout nimmt gespeicherte Layout-Eintraege woertlich (inkl. minW/minH). | blocking | Bei jeder Aenderung an Vorgaben pruefen, ob persistierte Daten dieselben Werte tragen; dann beim Laden ueberschreiben/anheben. |
| `git checkout -- <Datei>` als Falsifizierungs-Rueckweg | setzte auch die noch unkommittierte Nutz-Aenderung zurueck. | advisory | Vor Rueckbau-Proben committen, oder Patchdatei + `git apply -R`. |
| Zwei Schreiber auf einer Datei | Uebersetzungs-Fix musste warten, weil der laufende Executor de.json/en.json anfasste. | advisory | Quick-Tasks mit ueberlappenden Dateien nacheinander ausfuehren. |
| Platte voll durch Bau-Cache | vier Docker-Bauten + CI: `no space left on device`. | advisory | `docker builder prune -af` und `docker image prune -f` bei Bedarf; Volumes nie anfassen. |
| Bericht statt Arbeitsbaum | (aus Etappe 2) Agenten brachen nach getaner Arbeit ab. | blocking | `git status` ist die Wahrheit. |
<current_state>
**Gemessen 2026-09-16 10:28Z:** `git status --porcelain` leer, `main == origin/main`
(29fe3d7), keine async-jobs, keine angefangene Arbeit.
**Live:** tessera.ctl.de laeuft `v1.1.0` (User hat gepullt, "sieht gut aus").
**Beta:** alpha.tessera.ctl.de holt `beta`/`latest` — derselbe Stand e0d4532.
**Registry:** beta/latest/live/v1.0.0/v1.1.0. **Gitea-Releases:** 1.0.0 und 1.1.0
(letzterer von der Pipeline angelegt — erster CI-Beweis des Release-Wegs).
**Schalter:** AUS und bleibt es. **Mandantenfaehigkeit:** RUHT (User 2026-09-14).
**Tests:** Web 49/309, API 67/1078, Werkzeug 253/253. **Ledger:** 15 offen / 1
zurueckgestellt / 23 geschlossen / 39.
</current_state>
<completed_work>
Seit 2026-09-14: WINDOWS #29, Etappe 3c, Kanalmodell + Versionsstempel,
Fehler-melden-Knopf, Erstfreigabe v1.0.0 (live 15.09.), Dashboard-Umbau +
Nachbesserung, Aenderungsliste (CHANGELOG.md, Seite "Was ist neu",
Gitea-Release je Tag), Uebersetzungs-Fix, Freigabe v1.1.0. Alle als Quick-Tasks
mit voller Kette; Details in der Quick-Task-Tabelle in `.planning/STATE.md`.
</completed_work>
<remaining_work>
Nichts Angefangenes. Naechste Arbeit kommt vom User (Feedback aus dem Betrieb).
Ohne Termin: Desktop-Client-Todo, Ship Phase 17 (blockiert bei open_count 15),
Ledger #35/#36/#37. Nicht ansprechen: Mandantenfaehigkeit, Lizenzierung.
</remaining_work>
<decisions_made>
Siehe `HANDOFF.json` — Kanalmodell, Versionsnummern-Regel (Funktionen -> mittlere
Stelle, Fixes -> dritte), Mandantenfaehigkeit ruht, Lizenzmodell nur festgehalten,
Dashboard-Entscheidungen (inhaltsgetriebene Minima, Ueberschreiben gespeicherter
Minima, ganze Kachel Griff, preventCollision).
</decisions_made>
<blockers>
Keine. Eine nicht-blockierende Handreichung fuer den User: auf alpha einmalig
`IMAGE_TAG=beta` und die zwei `image:`-Zeilen (Kap. 9) — bis dahin laeuft alpha
ueber `latest`, das dasselbe Abbild ist.
</blockers>
## Required Reading (in order)
1. `.planning/STATE.md` — Session Continuity + Quick-Task-Tabelle
2. `CHANGELOG.md` — Regel: jede Aenderung sofort unter `## Unveröffentlicht`
3. `docs/anleitung-betrieb.md` Kapitel 9 — Freigabe/Hotfix-Rezept
4. `.planning/WINDOWS.md` — 15 offen, davon nur #35/#36/#37 ohne Mandantenbezug
## Infrastructure State
- Live-Server tessera.ctl.de (`IMAGE_TAG=live`, eigene DB); alpha 192.168.13.12
(Beta); Deploy macht der User (pull + `up -d --force-recreate api web`).
- Lokal: `db`, `api`, `web`, `mailhog` laufen (web aus c3d8e16); Admin
admin/admin123; DB ohne Host-Port (IP per `docker inspect`, tessera:tessera_dev);
Prisma-Binary aus `apps/api/node_modules/.bin/prisma`.
- Gitea 1.26.2 + Runner auf diesem Rechner; Runner arbeitet EINEN Auftrag
gleichzeitig; CI ueber API localhost:3002 beobachtbar (Token aus Push-URL, nie
ausgeben). `grep` ist hier ugrep (`$` als Anker).
<next_action>
`/gsd-resume-work`, dann das, was der User nennt — als `/gsd-quick --validate`
mit voller Kette; Browser-Nachweis per Playwright MCP gegen lokale Container;
CHANGELOG pflegen; bei "Version freigeben" das Rezept aus Kap. 9.
</next_action>