Slice 4.2. The receipt duty from ADR-0024 was built yesterday on the premise that "the error is forgetting, not doing it wrong". The same upgrade falsified that on the same day: the receipt for schema.yaml was written, it is truthful, it names correctly what was carried over - and two fields were lost anyway. Nobody forgot anything. pruefe_upstream_drift.py now holds our schema.yaml structurally against the baseline: every type, field, enum value and required entry the baseline carries must exist here. Adding is allowed, losing is not. Checked counterfactually against the real loss, which it reports. For the two other extended files there is no equivalent - they are Python, and no structural comparison exists. That half stays open and is written down rather than glossed over. Building it taught the check two things about itself. It broke the existing selftest because that fixture wrote schema.yaml as prose - the same unrealistic fixture FB-12 already records as having made an assertion worthless for this very script. And my counter-control reported "nothing" for the removed crash guard, because a crash returns the same exit code as a failure; only checking for a traceback showed the script never reaches its summary without it. Both times the control was blunt, not the check. Sixteen assertions, six deliberate breaks, none uncovered. The occasion is recorded for the next harvest as two stolpersteine pages - the first use of the mechanism ADR-0009 decided: a receipt certifies attention rather than completeness, and a file cannot be authoritative and immutable at once. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F2Q4Ri8NGwyTZzScvKnWFM
14 KiB
14 KiB
STATUS
Issues (53 open, 46 closed)
Verteilung: M1 7 · M2 16 · M3 4 · M4 11 · M5 15
Bedeutung der Meilensteine: siehe roadmap.md.
M1 (7)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0056 | high | open | External PostgreSQL Migration: CloudNativePG or Hetzner |
| 0030 | medium | in-progress | Der Restore ist nie geprobt — Sicherungen sind bisher eine Vermutung |
| 0078 | medium | open | CVE-Meldeweg v2: Metriken, Grafana-Dashboard, Alerts in eigenen Matrix-Raum |
| 0083 | medium | open | Monitoring-Deploy: geaenderte Configs greifen nicht ohne --force-recreate (Inode-Falle bei Einzeldatei-Mounts) |
| 0088 | medium | open | NetworkPolicy: ausgehender Verkehr ist unbeschränkt (13 Ingress-Regeln, 1 Egress) |
| 0004 | low | waiting | OVERMIND-02: e1000e-NIC-Hang — Beobachtung nach EEE-Fix + Firmware-Update |
| 0072 | low | open | DSGVO/Datenschutz-Compliance konkretisieren |
M2 (16)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0015 | medium | waiting | CFGMON-15: Token-Hygiene — Einmal-Tokens der LABNET-02-Nacht widerrufen |
| 0021 | medium | waiting | OVERMIND-03: Windows-Build-VM verschwindet — CI kann sie nur starten, nicht anlegen |
| 0027 | medium | open | AUDIT-01: Acht Widersprüche aus dem LABNET-02-Nachlauf (Selbst-Audit CFGMON-Session) |
| 0034 | medium | open | CFGMON-11 — Gitea-CI-Rückbau abschließen (sicher rückbaubare Schritte) |
| 0073 | medium | open | Architektur: Monorepo-Umbau mit generalisiertem Config-Overlay |
| 0009 | low | open | CFGMON-04: Grafana-Admin-Credentials aus .env gelten nicht für die HTTP-API |
| 0014 | low | open | CFGMON-14: Root-Zugang über die docker-Gruppe umgeht sudo und hinterlässt keine Spur |
| 0019 | low | open | DOC-02: Veralteten wiki-Branch im gitops-Repo entfernen? |
| 0033 | low | open | OVERMIND-01 — element-desktop-build von rohana in die Lab-Registry umziehen |
| 0040 | low | open | neckbeard-Rückmeldungen aus dem Feldtest einreichen |
| 0053 | low | open | Historien-Durchgang: acht nicht-kanonische Commits mitziehen |
| 0061 | low | open | External-Secrets Operator vs. current SOPS setup |
| 0074 | low | open | Cleanup-Checkliste (laufend) |
| 0076 | low | open | Registry-/Git-Traffic zum Gitea-Host ueber privates Hetzner-Netzwerk statt oeffentlichem Internet routen |
| 0085 | low | open | docs/ trägt zwei Altbestände abgeschlossener Umzüge: TASKS.md und oldwiki/ |
| 0105 | low | waiting | Projekt wiki: Verbleib klären — erst unmittelbar vor Projektabschluss |
M3 (4)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0080 | medium | open | Raidplaner mit sozialer Komponente (Verfügbarkeiten, Aufgaben, Roadmap, Fotoalbum) |
| 0081 | medium | open | Gäste-Invite-Workflow per Bot (3-Tage-Accounts, Admin-Freischaltung, begrenzte Reaktivierung) |
| 0094 | medium | open | Direkter Link zur 2FA/Passkey-Einrichtung in den Account-Settings |
| 0092 | low | waiting | Default-Client-Einstellungen (Theme, Features) für Neuinstallationen provisionieren |
M4 (11)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0029 | medium | open | UI harmonisieren: gleiche Farben und Formen über alle Oberflächen |
| 0057 | medium | open | Element Call: VP9 codec retry |
| 0093 | medium | open | Settings normalisieren: Video/Audio-Einstellungen nur im Call-Widget, nicht im Haupt-Client |
| 0096 | medium | waiting | Rebranding: Element → aXion1337 (Web + Desktop, Gesamtklammer) |
| 0022 | low | open | BUILD-01: macOS-Client reproduzierbar bauen — aktuell nur manuell auf sorbs Mac |
| 0086 | low | open | k8s-Ressourcen heißen noch element-web-docs (Rest des ThreadNet-Rebrands) |
| 0087 | low | waiting | Logo für die Authentik-Anmeldemaske entwerfen (Querformat/SVG) |
| 0095 | low | open | Windows-Desktop: Code-Signing (+ Installer-Branding) |
| 0097 | low | open | Feedback-/Bugreport-Weg: eigener Rageshake oder Alternative (Zammad nachhalten) |
| 0100 | low | open | Asset-Pfade tragen weiterhin "element" (themes/element/…) |
| 0101 | low | open | Kaputtes Paket 0.19.2-threadnet.6 in der Registry — Herkunft ungeklärt |
M5 (15)
| Issue | Priorität | Status | Title |
|---|---|---|---|
| 0051 | high | open | CVE-Remediation-Pass: Schwachstellen-Report abarbeiten |
| 0065 | high | open | K3s API security hardening |
| 0058 | medium | open | Web Application Firewall (WAF) |
| 0059 | medium | open | Pod Security Admission (Restricted) |
| 0062 | medium | open | Renovate/Dependabot for chart and image updates |
| 0063 | medium | open | Security advisory monitoring (ESS/Element) |
| 0064 | medium | open | Disable automountServiceAccountToken where not needed |
| 0066 | medium | open | auditd for file integrity & syscall audit |
| 0067 | medium | open | Kernel hardening (sysctl) |
| 0068 | medium | open | Lynis security baseline |
| 0069 | medium | open | CrowdSec integration |
| 0070 | medium | open | Falco runtime monitoring |
| 0071 | low | open | Trivy image scanning for CVEs |
| 0089 | low | open | Eigene Images sind unsigniert — beim Deploy prüft nichts die Herkunft |
| 0090 | low | open | Kein Kubernetes-Audit-Log — Zugriffe an der API werden nicht protokolliert |
Active design docs (1)
| Design | Gate | Title |
|---|---|---|
| 2026-08-21-v031-adoption-stage-2 | gate-3 | Design: Die Übernahme von v0.3.1 zu Ende bringen — Etappe 2 |
ADRs (24)
| ADR | Status | Title |
|---|---|---|
| 0001 | accepted | 0001 — git.lab ist kanonisch, Gitea wird per Push-Mirror beliefert |
| 0002 | superseded | 0002 — Issues und Management-Repo ziehen ins Lab („das Lab ist die Quelle der Wahrheit") |
| 0003 | accepted | 0003 — CVE-Meldeweg: aggregierte Alarme, eigener Security-Raum, gleicher Bot |
| 0004 | accepted | 0004 — Site-to-Site-VPN Hetzner-Projektnetz ↔ Lab, schaltbar über die UDM |
| 0005 | accepted | 0005 — Projektmanagement: Kanban-Rückgrat mit leichten Scrum-Elementen |
| 0006 | superseded | 0006 — Wikis ins Lab konsolidieren, Docusaurus als gemeinsame Lesefläche |
| 0007 | superseded | 0007 — Wiki-Oberfläche: Docusaurus läuft, BookStack als Gegenentwurf |
| 0008 | accepted | 0008 — Agenten-Sessions auf CFGMON laufen root-äquivalent über die docker-Gruppe |
| 0009 | accepted | 0009 — Commit-Konventionen und rückwirkende Anonymisierung der Historie |
| 0010 | accepted | 0010 — Härtung ist ein eigener Meilenstein (M5); M1 misst nur Kaputtes |
| 0011 | accepted | 0011 — Provisionierung verweigert Localpart-Kollisionen, statt an bestehende Konten zu verknüpfen |
| 0012 | accepted | ADR-0012: Issues leben im Repo; GitLab wird deterministisch bespiegelt |
| 0013 | accepted | ADR-0013: Gruppenregeln kanonisch im management-Repo, Komponenten zeigen und werden geprüft |
| 0014 | accepted | 0014 — Wiki.js löst Docusaurus ab: abgeschottete Betriebs-/Anwenderdoku, docs-as-code |
| 0015 | accepted | 0015 — Wiki.js Git-Storage: Inhalt fließt Cluster→Gitea→kanonisiert nach git.lab |
| 0016 | accepted | 0016 — Das Notfallhandbuch bleibt lab-intern und wird nicht gespiegelt |
| 0017 | accepted | 0017 — Split-DNS auf CFGMON: vier Zonen statt einer, je Zone begründet |
| 0018 | accepted | 0018 — KI-Geräuschunterdrückung in threadnet-call: client-seitig, opt-in, selbst ausgeliefert |
| 0019 | accepted | ADR-0019: Komponenten-Issues in docs/issues/ adoptiert — eine Nummernwelt für die Gruppe |
| 0020 | accepted | ADR-0020: Bekannte Befunde werden quittiert, damit Rot wieder etwas bedeutet |
| 0021 | accepted | ADR-0021: Föderation wird geschlossen — leere Whitelist statt offener Tür |
| 0022 | accepted | ADR-0022: Anschluss an Upstream durch einen einmaligen Merge, nicht durch einen geteilten Graft |
| 0023 | accepted | ADR-0023: Fremde Historie von der Git-Hygiene ausnehmen — erklärt, nicht global |
| 0024 | accepted | ADR-0024: Drei Framework-Dateien sind erklärt erweitert — Diff-Referenz statt Byte-Vergleich |
Open AARs (6)
- AAR — Alle geplanten Prüfungen waren dauerhaft rot und meldeten damit nichts mehr
- AAR — Nach der Freischaltung sendete Safari ungefiltert weiter
- AAR —
v0.6.0-rc.2brach die Raumliste in Produktion - AAR — Drei DKIM-Einträge verschwanden bei der DMARC-Härtung
- AAR — Game-Host-Anbindung: Deploy über zwei Übergaben, Ursache war nie die Firewall
- AAR — rohana lief voll, der ThreadNet-Web-Spiegel riss
Fehlerklassen (5)
offen (2)
- Eine Datei kann nicht maßgeblich und zugleich unveränderlich sein
- Eine Quittung bezeugt Aufmerksamkeit, nicht Vollständigkeit
geerntet (1)
- „Meldet Erfolg, ist aber blind" — die häufigste Fehlerklasse dieses Projekts — neckbeard v0.1.3