Files
management/docs/aar/2026-08-09-refinement-und-betrieb.md
T
Thore CimbalandClaude Fable 5 92b448fe30 feat: slice 3 - wiki, sources and AARs in their neckbeard homes
Gate 4, slice 3: verfahren/, hosts/, vision/ and shared/ moved via git
mv - six AARs to docs/aar/ (four harvested by the 2026-08-09 retro,
two open), procedures and host knowledge to docs/wiki/ (admin,
deployment, architecture, new area vision), the retro protocol and the
commit mapping table to docs/sources/ (protokolle/, migration/). New:
the wiki index linking every page, and the mirror-topology page
carrying the why-two-places reasoning verbatim from the old CLAUDE.md
(F-013 preserved). All moved-path references retargeted; the link
checker drove the sweep to zero.

pruefe_prosa.py added (pattern C+D): SHA citations resolve via repo,
mapping table, optional component clones or a curated exemption list
(documented dead Gitea-force-push commits, a vendor-repo tag, an
Authentik uid that is hex but no git SHA, the external neckbeard
reference); wiki task prose without an issue reference errors, with a
visible pragma for deliberate checklists; the dead-tracker denylist
now covers every mirrored repo's retired Gitea tracker (F-005) - two
links re-verified against live GitLab titles and retargeted, five
defused into honest historical citations.

Verified: validate 0/0, gen_status --check current, drift 0. Demo on
the pre-migration state fires 6 findings (3 orphaned SHAs, 3 task
blocks); on the current tree exactly the 3 F-004 task blocks remain -
they turn green in slice 4 when the issues exist, which is why
pruefe_prosa joins CI only then.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 12:00:00 +00:00

108 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
type: aar
status: open
date: 2026-08-09
related: []
---
# AAR — Refinement, Betrieb voranbringen, Git-Historie anonymisiert
**Datum:** 2026-08-09 · **Host/Stack:** git.lab, Gitea, K3s-Cluster (Authentik,
Synapse, Element Web) · **Auftrag:** Backlog-Refinement, danach gezielt den
Betrieb von ThreadNet voranbringen statt weiter Befunde anzuhäufen
## 1. Ergebnis
**Live und verifiziert:**
- MFA-Pflicht für die Gruppe `authentik Admins` — Stage, Bindung und
Gruppenzuordnung in der Datenbank geprüft, Standard-Login für alle anderen
unverändert
- `matrix-recovery-flow`-Blueprint läuft erfolgreich — `SELECT … WHERE status
<> 'successful'` liefert 0 Zeilen
- Web-Client zeigt einen Fehlerbericht-Weg, der **lokal** bleibt
(`bug_report_endpoint_url: "local"`) — vorher unbemerkt an element.io
- 251 Commits über vier Repos auf 12:00-UTC-Zeitstempel umgeschrieben, Force-
gepusht, Mirrors und Flux verifiziert synchron
- Stillstandsprüfung läuft täglich per Zeitplan, fand beim ersten Lauf zwei
vorher unbekannte Repos ohne Push-Mirror
- `game-operating` gespiegelt und secret-frei verifiziert (Coolify-
Magievariablen, keine echten Werte)
- Call-Widget stempelt sich mit Paketversion + Commit statt „dev"
- `@concierge`-Bot für Gäste-Einladungen gebaut und deployt
**Bewusst nicht live:**
- Desktop-Client hat den lokalen Fehlerbericht-Weg erst mit dem nächsten Build
(Config geändert, kein Rebuild ausgelöst)
- `@concierge` läuft nicht — wartet auf Matrix-Konto, Authentik-Token,
Einladungsraum, zwei Gruppen, Secret (alles Zugangsdaten, sorbs Seite)
- Authentik-Teil der Stillstandsprüfung übersprungen ohne Token (Fehlen wird
ausgewiesen, nicht verschwiegen)
- `gameserver` weiterhin ohne Mirror — zwei Repos gleichen Namens mit
unterschiedlichem Stand, Klärung vor jedem Eingriff nötig
## 2. Befunde
| # | Befund | Schwere | Status |
|---|---|---|---|
| 1 | `matrix-recovery-flow`-Blueprint scheiterte seit Tagen bei jedem Lauf, während Flux grün meldete | HIGH | behoben |
| 2 | Ursache des Blueprint-Fehlers war zweifach verdeckt: `!KeyOf` löst beim Fehlschlag gegen ein leeres Blueprint auf und wirft dieselbe Ausnahme erneut — die echte Meldung ging im eigenen Logging unter | HIGH | behoben, `!Find` statt `!KeyOf` |
| 3 | Web-Client sendete Fehlerberichte an `rageshakes.element.io` — die Desktop-Bereinigung vom 2026-08-01 hatte den Web-Build nie erreicht, weil der beim Bauen Elements eigene `develop/config.json` kopiert | HIGH | behoben, `"local"` gesetzt |
| 4 | `game-operating` und `gameserver` ohne Push-Mirror; bei `gameserver` liegt auf Gitea ein anderer Stand als auf git.lab | MEDIUM | `game-operating` behoben, `gameserver` offen (management#32) |
| 5 | Nach dem Privat-Stellen von `game-operating` auf Gitea übersprang die Stillstandsprüfung den Mirror-Abgleich klaglos, statt es als Befund zu werten | MEDIUM | behoben |
| 6 | Header-Hilfsfunktion baute `Authorization: token: <wert>` (doppelter Doppelpunkt) — still ungültig, hätte beim Eintragen des Authentik-Tokens wie ein falscher Token ausgesehen | MEDIUM | behoben, vor dem ersten echten Einsatz gefunden |
| 7 | Gitops-Leitfaden 04 nannte 7 Themes mit teils erfundenen Namen (`Gruvbox Dark`, `Wal`); tatsächlich 17 | LOW | behoben |
| 8 | threadnet-call-Doku beschrieb einen manuellen npm-Publish, der seit 2026-08-06 automatisiert läuft | LOW | behoben |
| 9 | `overmind.md` nannte „sechs gespiegelte Repos" — nach dem Mirror für `game-operating` sind es sieben | LOW | behoben |
| 10 | Neu angelegter Deployment-Guide (`@concierge`) fehlte im eigenen Index | LOW | behoben |
| 11 | Tag-Push (Force, für die Historien-Anonymisierung) löste in ThreadNet-Web drei Release-Pipelines neu aus; nur weil die geschützten Registry-Variablen im Zeitfenster fehlten, wurde `v0.4.0` nicht mit heutigem Code überschrieben | HIGH | Sperre nachgezogen (ThreadNet-Web#14), Ursache war Zufall, nicht Schutz |
## 3. Verdachtsfälle mit Entwarnung
- **`game-operating` öffentlich auf Gitea** — Secret-Scan über alle fünf
öffentlich gewordenen Dateien: kein echter Credential-Wert, ausschließlich
Coolify-Magievariablen und ein leeres `api_key`-Feld. Erste Prüfung lieferte
fälschlich „sauber", weil der Rohpfad falsch war (5×11-Byte-„Not found"-
Antworten) — erst nach Gegenprobe der Dateigrößen als Fehlmessung erkannt und
mit korrektem Pfad wiederholt.
- **Meine erste Diagnose zu #60** („Passwort-Wiederherstellung vermutlich tot")
— falsch. Der Flow hatte durchgehend alle sechs Bindungen, der Blueprint-
Fehler betraf nur künftige Blueprint-Läufe, nicht die längst angelegten
Objekte.
## 4. Was die Befunde ermöglicht hat
- **Direktes Auslesen der Authentik-Datenbank statt Vertrauen auf den
Flux-Status.** Blueprint-Fehler #1/#2 waren nur so sichtbar — Flux, die
ConfigMap und der Cluster-Zustand insgesamt meldeten durchgehend grün.
- **`ak apply_blueprint` von Hand** hat den durch das eigene Logging
verdeckten Fehler #2 erst zugänglich gemacht — der reguläre Weg (Worker-Log)
zeigte nur die Folgeausnahme.
- **Den Ist-Zustand vor einer Änderung auslesen statt der Issue-Beschreibung
zu glauben** hat Befund #3 aufgedeckt — die Annahme im Issue betraf nur den
Desktop-Client, `config.json` auf dem Web-Server sagte etwas anderes.
- **Die Stillstandsprüfung selbst** (aus der gestrigen Retro gebaut) hat
Befund #4 im ersten Lauf gefunden — eine dynamische Projektliste statt einer
im Code gepflegten hat zwei Repos zutage gebracht, die niemand auf dem
Schirm hatte.
- **Content-Length-Gegenprobe nach dem Secret-Scan** hat die eigene
Fehlmessung beim `game-operating`-Check aufgedeckt, bevor sie als „sauber"
ins Protokoll ging.
- **Baumvergleich (Tree-Hash) vor und nach jedem Rewrite-Schritt** — 251 von
251 Paaren über Tree *und* Commit-Nachricht verifiziert, keine Annahme.
## 5. Offen
- **`@concierge` aktivieren** — fünf Zugangsdaten-Schritte, Checkliste in
gitops#48
- **`gameserver`-Mirror** — Standklärung nötig, management#32
- **Stillstandsprüfung Authentik-Teil** — `AUTHENTIK_URL`/`AUTHENTIK_TOKEN`,
management#31, bewusst aufgeschoben (sorb, 2026-08-09)
- **Rageshake vs. Zammad** — durch den lokalen Fix entschärft, aber nicht
entschieden, ThreadNet-Web#9
- **`report_event.admin_message_md`** nicht gesetzt — wer Inhalte meldet,
sieht keinen Kontaktweg; braucht nur eine Angabe (welcher Raum/Kontakt) von
sorb, dann eine Zeile Config
- **Desktop-Build** für den lokalen Fehlerbericht-Weg noch ausständig
- **ADR-0009** (Commit-Konventionen/Anonymisierung) nachträglich verfasst —
Lehre aus der Retro, in `decisions/` dokumentiert