# STATUS ## Issues (49 open, 54 closed) Verteilung: M2 16 · M3 4 · M4 11 · M5 17 · M6 1 Bedeutung der Meilensteine: siehe [roadmap.md](roadmap.md). ### M2 (16) | Issue | Priorität | Status | Title | |---|---|---|---| | [0015](docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md) | medium | waiting | CFGMON-15: Token-Hygiene — Einmal-Tokens der LABNET-02-Nacht widerrufen | | [0021](docs/issues/0021-overmind-03-windows-build-vm-verschwindet-ci.md) | medium | waiting | OVERMIND-03: Windows-Build-VM verschwindet — CI kann sie nur starten, nicht anlegen | | [0027](docs/issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md) | medium | open | AUDIT-01: Acht Widersprüche aus dem LABNET-02-Nachlauf (Selbst-Audit CFGMON-Session) | | [0034](docs/issues/0034-cfgmon-11-gitea-ci-rueckbau-abschliessen.md) | medium | open | CFGMON-11 — Gitea-CI-Rückbau abschließen (sicher rückbaubare Schritte) | | [0073](docs/issues/0073-gitops-35-architektur-monorepo-umbau-mit-generalisierte.md) | medium | open | Architektur: Monorepo-Umbau mit generalisiertem Config-Overlay | | [0009](docs/issues/0009-cfgmon-04-grafana-admin-credentials-aus-env.md) | low | open | CFGMON-04: Grafana-Admin-Credentials aus .env gelten nicht für die HTTP-API | | [0014](docs/issues/0014-cfgmon-14-root-zugang-ueber-die-docker-gruppe.md) | low | open | CFGMON-14: Root-Zugang über die docker-Gruppe umgeht sudo und hinterlässt keine Spur | | [0019](docs/issues/0019-doc-02-veralteten-wiki-branch-im-gitops-repo.md) | low | open | DOC-02: Veralteten `wiki`-Branch im gitops-Repo entfernen? | | [0033](docs/issues/0033-overmind-01-element-desktop-build-lab-registry.md) | low | open | OVERMIND-01 — element-desktop-build von rohana in die Lab-Registry umziehen | | [0040](docs/issues/0040-neckbeard-rueckmeldungen-einreichen.md) | low | open | neckbeard-Rückmeldungen aus dem Feldtest einreichen | | [0053](docs/issues/0053-historien-durchgang-nicht-kanonische-commits.md) | low | open | Historien-Durchgang: acht nicht-kanonische Commits mitziehen | | [0061](docs/issues/0061-gitops-20-external-secrets-operator-vs-current-sops-set.md) | low | open | External-Secrets Operator vs. current SOPS setup | | [0074](docs/issues/0074-gitops-39-cleanup-checkliste-laufend.md) | low | open | Cleanup-Checkliste (laufend) | | [0076](docs/issues/0076-gitops-41-registry-git-traffic-zum-gitea-host-ueber-pri.md) | low | open | Registry-/Git-Traffic zum Gitea-Host ueber privates Hetzner-Netzwerk statt oeffentlichem Internet routen | | [0085](docs/issues/0085-gitops-52-docs-traegt-zwei-altbestaende-abgeschlossener.md) | low | open | docs/ trägt zwei Altbestände abgeschlossener Umzüge: TASKS.md und oldwiki/ | | [0105](docs/issues/0105-projekt-wiki-vor-projektabschluss-klaeren.md) | low | waiting | Projekt `wiki`: Verbleib klären — erst unmittelbar vor Projektabschluss | ### M3 (4) | Issue | Priorität | Status | Title | |---|---|---|---| | [0080](docs/issues/0080-gitops-47-raidplaner-mit-sozialer-komponente-verfuegbar.md) | medium | open | Raidplaner mit sozialer Komponente (Verfügbarkeiten, Aufgaben, Roadmap, Fotoalbum) | | [0081](docs/issues/0081-gitops-48-gaeste-invite-workflow-per-bot-3-tage-account.md) | medium | open | Gäste-Invite-Workflow per Bot (3-Tage-Accounts, Admin-Freischaltung, begrenzte Reaktivierung) | | [0094](docs/issues/0094-threadnet-web-4-direkter-link-zur-2fa-passkey-einrichtung-in.md) | medium | open | Direkter Link zur 2FA/Passkey-Einrichtung in den Account-Settings | | [0092](docs/issues/0092-threadnet-web-1-default-client-einstellungen-theme-features-f.md) | low | waiting | Default-Client-Einstellungen (Theme, Features) für Neuinstallationen provisionieren | ### M4 (11) | Issue | Priorität | Status | Title | |---|---|---|---| | [0029](docs/issues/0029-ui-harmonisieren-gleiche-farben-und-formen.md) | medium | open | UI harmonisieren: gleiche Farben und Formen über alle Oberflächen | | [0057](docs/issues/0057-gitops-11-element-call-vp9-codec-retry.md) | medium | open | Element Call: VP9 codec retry | | [0093](docs/issues/0093-threadnet-web-3-settings-normalisieren-video-audio-einstellun.md) | medium | open | Settings normalisieren: Video/Audio-Einstellungen nur im Call-Widget, nicht im Haupt-Client | | [0096](docs/issues/0096-threadnet-web-7-rebranding-element-axion1337-web-desktop-gesa.md) | medium | waiting | Rebranding: Element → aXion1337 (Web + Desktop, Gesamtklammer) | | [0022](docs/issues/0022-build-01-macos-client-reproduzierbar-bauen.md) | low | open | BUILD-01: macOS-Client reproduzierbar bauen — aktuell nur manuell auf sorbs Mac | | [0086](docs/issues/0086-gitops-53-k8s-ressourcen-heissen-noch-element-web-docs.md) | low | open | k8s-Ressourcen heißen noch element-web-docs (Rest des ThreadNet-Rebrands) | | [0087](docs/issues/0087-gitops-55-logo-fuer-die-authentik-anmeldemaske-entwerfe.md) | low | waiting | Logo für die Authentik-Anmeldemaske entwerfen (Querformat/SVG) | | [0095](docs/issues/0095-threadnet-web-6-windows-desktop-code-signing-installer-brandi.md) | low | open | Windows-Desktop: Code-Signing (+ Installer-Branding) | | [0097](docs/issues/0097-threadnet-web-9-feedback-bugreport-weg-eigener-rageshake-oder.md) | low | open | Feedback-/Bugreport-Weg: eigener Rageshake oder Alternative (Zammad nachhalten) | | [0100](docs/issues/0100-threadnet-web-13-asset-pfade-tragen-weiterhin-element-themes-e.md) | low | open | Asset-Pfade tragen weiterhin "element" (themes/element/…) | | [0101](docs/issues/0101-threadnet-call-4-kaputtes-paket-0-19-2-threadnet-6-in-der-regi.md) | low | open | Kaputtes Paket 0.19.2-threadnet.6 in der Registry — Herkunft ungeklärt | ### M5 (17) | Issue | Priorität | Status | Title | |---|---|---|---| | [0065](docs/issues/0065-gitops-25-k3s-api-security-hardening.md) | high | open | K3s API security hardening | | [0109](docs/issues/0109-der-weg-vom-commit-ins-cluster-meldet-seinen-stillstand-nicht.md) | high | open | Der Weg vom Commit ins Cluster meldet seinen Stillstand nicht | | [0058](docs/issues/0058-gitops-14-web-application-firewall-waf.md) | medium | open | Web Application Firewall (WAF) | | [0059](docs/issues/0059-gitops-16-pod-security-admission-restricted.md) | medium | open | Pod Security Admission (Restricted) | | [0062](docs/issues/0062-gitops-21-renovate-dependabot-for-chart-and-image-updat.md) | medium | open | Renovate/Dependabot for chart and image updates | | [0063](docs/issues/0063-gitops-22-security-advisory-monitoring-ess-element.md) | medium | open | Security advisory monitoring (ESS/Element) | | [0064](docs/issues/0064-gitops-23-disable-automountserviceaccounttoken-where-no.md) | medium | open | Disable automountServiceAccountToken where not needed | | [0066](docs/issues/0066-gitops-26-auditd-for-file-integrity-syscall-audit.md) | medium | open | auditd for file integrity & syscall audit | | [0067](docs/issues/0067-gitops-27-kernel-hardening-sysctl.md) | medium | open | Kernel hardening (sysctl) | | [0068](docs/issues/0068-gitops-28-lynis-security-baseline.md) | medium | open | Lynis security baseline | | [0069](docs/issues/0069-gitops-29-crowdsec-integration.md) | medium | open | CrowdSec integration | | [0070](docs/issues/0070-gitops-30-falco-runtime-monitoring.md) | medium | open | Falco runtime monitoring | | [0107](docs/issues/0107-aktives-konto-ohne-profil-zeile-faellt-nur-durch-beschwerde-auf.md) | medium | open | Ein aktives Konto ohne Profil-Zeile fällt nur durch eine Beschwerde auf | | [0108](docs/issues/0108-erlaubnisliste-veraltet-still-wenn-das-chart-die-verdrahtung-ver.md) | medium | open | Eine Erlaubnisliste veraltet still, wenn das Chart die Verdrahtung verschiebt | | [0071](docs/issues/0071-gitops-31-trivy-image-scanning-for-cves.md) | low | open | Trivy image scanning for CVEs | | [0089](docs/issues/0089-gitops-58-eigene-images-sind-unsigniert-beim-deploy-pru.md) | low | open | Eigene Images sind unsigniert — beim Deploy prüft nichts die Herkunft | | [0090](docs/issues/0090-gitops-59-kein-kubernetes-audit-log-zugriffe-an-der-api.md) | low | open | Kein Kubernetes-Audit-Log — Zugriffe an der API werden nicht protokolliert | ### M6 (1) | Issue | Priorität | Status | Title | |---|---|---|---| | [0072](docs/issues/0072-gitops-34-dsgvo-datenschutz-compliance-konkretisieren.md) | low | open | DSGVO/Datenschutz-Compliance konkretisieren | ## Active design docs (0) _none active_ ## ADRs (27) | ADR | Status | Title | |---|---|---| | [0001](docs/adr/0001-gitlab-kanonisch-push-mirror.md) | accepted | 0001 — git.lab ist kanonisch, Gitea wird per Push-Mirror beliefert | | [0002](docs/adr/0002-issues-und-management-ins-lab.md) | superseded | 0002 — Issues und Management-Repo ziehen ins Lab („das Lab ist die Quelle der Wahrheit") | | [0003](docs/adr/0003-cve-meldeweg-aggregiert.md) | accepted | 0003 — CVE-Meldeweg: aggregierte Alarme, eigener Security-Raum, gleicher Bot | | [0004](docs/adr/0004-site-to-site-vpn-hetzner-lab.md) | accepted | 0004 — Site-to-Site-VPN Hetzner-Projektnetz ↔ Lab, schaltbar über die UDM | | [0005](docs/adr/0005-pm-framework-kanban.md) | accepted | 0005 — Projektmanagement: Kanban-Rückgrat mit leichten Scrum-Elementen | | [0006](docs/adr/0006-wikis-konsolidieren-docusaurus.md) | superseded | 0006 — Wikis ins Lab konsolidieren, Docusaurus als gemeinsame Lesefläche | | [0007](docs/adr/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md) | superseded | 0007 — Wiki-Oberfläche: Docusaurus läuft, BookStack als Gegenentwurf | | [0008](docs/adr/0008-agenten-sessions-root-aequivalent.md) | accepted | 0008 — Agenten-Sessions auf CFGMON laufen root-äquivalent über die docker-Gruppe | | [0009](docs/adr/0009-commit-konventionen-und-historien-anonymisierung.md) | accepted | 0009 — Commit-Konventionen und rückwirkende Anonymisierung der Historie | | [0010](docs/adr/0010-haertung-eigener-meilenstein.md) | accepted | 0010 — Härtung ist ein eigener Meilenstein (M5); M1 misst nur Kaputtes | | [0011](docs/adr/0011-enrollment-localpart-kollision-verweigern.md) | accepted | 0011 — Provisionierung verweigert Localpart-Kollisionen, statt an bestehende Konten zu verknüpfen | | [0012](docs/adr/0012-issues-im-repo-gitlab-als-spiegel.md) | accepted | ADR-0012: Issues leben im Repo; GitLab wird deterministisch bespiegelt | | [0013](docs/adr/0013-gruppenregeln-kanonisch-mit-pruefung.md) | accepted | ADR-0013: Gruppenregeln kanonisch im management-Repo, Komponenten zeigen und werden geprüft | | [0014](docs/adr/0014-wikijs-loest-docusaurus-ab.md) | accepted | 0014 — Wiki.js löst Docusaurus ab: abgeschottete Betriebs-/Anwenderdoku, docs-as-code | | [0015](docs/adr/0015-wiki-git-storage-ueber-gitea-kanonisieren.md) | accepted | 0015 — Wiki.js Git-Storage: Inhalt fließt Cluster→Gitea→kanonisiert nach git.lab | | [0016](docs/adr/0016-notfallhandbuch-nicht-spiegeln.md) | accepted | 0016 — Das Notfallhandbuch bleibt lab-intern und wird nicht gespiegelt | | [0017](docs/adr/0017-split-dns-cfgmon-vier-zonen.md) | accepted | 0017 — Split-DNS auf CFGMON: vier Zonen statt einer, je Zone begründet | | [0018](docs/adr/0018-ki-geraeuschunterdrueckung-clientseitig-opt-in.md) | accepted | 0018 — KI-Geräuschunterdrückung in threadnet-call: client-seitig, opt-in, selbst ausgeliefert | | [0019](docs/adr/0019-komponenten-issues-adoptiert.md) | accepted | ADR-0019: Komponenten-Issues in docs/issues/ adoptiert — eine Nummernwelt für die Gruppe | | [0020](docs/adr/0020-bekannte-befunde-quittieren.md) | accepted | ADR-0020: Bekannte Befunde werden quittiert, damit Rot wieder etwas bedeutet | | [0021](docs/adr/0021-foederation-geschlossen.md) | accepted | ADR-0021: Föderation wird geschlossen — leere Whitelist statt offener Tür | | [0022](docs/adr/0022-upstream-anschluss-durch-einmaligen-merge.md) | accepted | ADR-0022: Anschluss an Upstream durch einen einmaligen Merge, nicht durch einen geteilten Graft | | [0023](docs/adr/0023-fremdhistorie-von-der-git-hygiene-ausnehmen.md) | accepted | ADR-0023: Fremde Historie von der Git-Hygiene ausnehmen — erklärt, nicht global | | [0024](docs/adr/0024-drei-framework-dateien-erklaert-erweitert.md) | accepted | ADR-0024: Drei Framework-Dateien sind erklärt erweitert — Diff-Referenz statt Byte-Vergleich | | [0025](docs/adr/0025-egress-ausnahmen-als-cidr-ausser-hinter-cdn.md) | accepted | ADR-0025: Egress-Ausnahmen werden als CIDR gepinnt — außer hinter einem CDN | | [0026](docs/adr/0026-pruefziele-werden-abgeleitet-nicht-gepflegt.md) | accepted | ADR-0026: Prüfziele werden abgeleitet, nicht gepflegt — und das Ausbleiben der Herleitung alarmiert | | [0027](docs/adr/0027-zuletzt-eigener-meilenstein.md) | accepted | ADR-0027: „Zuletzt" wird ein eigener Meilenstein (M6) | ## Open AARs (10) - [AAR — Alle geplanten Prüfungen waren dauerhaft rot und meldeten damit nichts mehr](docs/aar/2026-08-18-alle-pruefungen-dauerhaft-rot.md) - [AAR — Nach der Freischaltung sendete Safari ungefiltert weiter](docs/aar/2026-08-18-safari-sendete-ungefiltert.md) - [AAR — `v0.6.0-rc.2` brach die Raumliste in Produktion](docs/aar/2026-08-19-rc2-raumliste-produktion.md) - [AAR — Drei DKIM-Einträge verschwanden bei der DMARC-Härtung](docs/aar/2026-08-20-dkim-verlust-zonenaenderung.md) - [AAR — Game-Host-Anbindung: Deploy über zwei Übergaben, Ursache war nie die Firewall](docs/aar/2026-08-20-game-host-anbindung.md) - [AAR — rohana lief voll, der ThreadNet-Web-Spiegel riss](docs/aar/2026-08-20-rohana-platte-voll-spiegel-gerissen.md) - [AAR: Clarks Calls und Identitäts-Reset — vier Fehldiagnosen bis zur bekannten Ursache](docs/aar/2026-08-21-clark-calls-reset-vier-fehldiagnosen.md) - [AAR: Deploy der abgeleiteten CVE-Zielmenge (#0106)](docs/aar/2026-08-21-cve-zielmenge-deploy.md) - [AAR: Die Anmeldung brach nach dem ESS-Sprung — eine Netzregel von heute Morgen](docs/aar/2026-08-21-mas-haproxy-netzregel.md) - [AAR: Die Ausrollstrecke stand eine Stunde — der Push-Spiegel kam nicht durch](docs/aar/2026-08-21-spiegel-ausfall.md) ## Fehlerklassen (18) ### offen (7) - [Die AAR-Pflicht setzt sich ohne Werkzeug nicht durch](docs/wiki/stolpersteine/aar-pflicht-ohne-werkzeug.md) - [Prüfungen erzeugen Befunde, die niemand beheben kann](docs/wiki/stolpersteine/befunde-die-niemand-beheben-kann.md) - [Ein gleichzeitiger, sachfremder Defekt wird der eigenen Änderung angelastet](docs/wiki/stolpersteine/fremder-defekt-der-aenderung-angelastet.md) - [Issues behaupten Zustände, die längst überholt sind](docs/wiki/stolpersteine/issues-behaupten-ueberholte-zustaende.md) - [Eine Datei kann nicht maßgeblich und zugleich unveränderlich sein](docs/wiki/stolpersteine/massgeblich-aber-unveraenderlich.md) - [Ein nachgebauter Test prüft den Nachbau](docs/wiki/stolpersteine/nachgebauter-test-prueft-den-nachbau.md) - [Eine Quittung bezeugt Aufmerksamkeit, nicht Vollständigkeit](docs/wiki/stolpersteine/quittung-bezeugt-aufmerksamkeit.md) ### teilweise gedeckt (3) - [Gelesene Anweisungen werden nicht befolgt](docs/wiki/stolpersteine/gelesene-anweisungen-nicht-befolgt.md) — neckbeard v0.3.0 - [Regeln ohne maschinellen Widerspruch werden nicht befolgt](docs/wiki/stolpersteine/regeln-ohne-widerspruch.md) — neckbeard v0.3.0 - [Der Upgrade-Pfad ins Rahmenwerk war beschrieben, nie begangen](docs/wiki/stolpersteine/upgrade-pfad-nie-begangen.md) — neckbeard v0.3.1 ### geerntet (4) - [Dashboards und Prüfungen ohne Datenbeleg](docs/wiki/stolpersteine/artefakt-existiert-liefert-aber-nichts.md) — neckbeard v0.1.3 - [Dokumente werden ergänzt, aber nicht revidiert](docs/wiki/stolpersteine/dokumente-ergaenzt-nicht-revidiert.md) — neckbeard v0.1.3 - [Gesperrte Dateien werden bearbeitet](docs/wiki/stolpersteine/gesperrte-dateien-werden-bearbeitet.md) — neckbeard v0.2.0 - [„Meldet Erfolg, ist aber blind" — die häufigste Fehlerklasse dieses Projekts](docs/wiki/stolpersteine/meldet-erfolg-ist-aber-blind.md) — neckbeard v0.1.3 ### vom Rahmenwerk nicht abgedeckt — bleibt unseres (2) - [Dokumente werden angelesen, nicht durchgelesen](docs/wiki/stolpersteine/dokumente-angelesen-nicht-durchgelesen.md) — neckbeard v0.1.3 - [Werkzeuge messen unbemerkt die falsche Instanz](docs/wiki/stolpersteine/werkzeug-misst-die-falsche-instanz.md) — neckbeard v0.1.3 ### ohne Ernte-Stand (2) - [Stolpersteine aus der neckbeard-Migration (2026-08-11)](docs/wiki/stolpersteine/neckbeard-migration.md) - [Stolpersteine: Wiki.js (Betrieb & Config)](docs/wiki/stolpersteine/wikijs.md)