analysis: add deterministic inventory scripts and raw data
run_all.sh reproduces every file under analysis/data/ from zero: it clones the in-scope components if missing, exports group issue metadata from git.lab, and regenerates the inventories. Reruns are diff-clean -- no wall-clock time enters an output; 'days since' is measured against the management repo's HEAD date. The management repo is inventoried at main, not at the analysis branch, so this analysis does not observe its own commits. inv_repo.py aborts the run if anything outside analysis/ was modified.
This commit is contained in:
@@ -0,0 +1,814 @@
|
||||
path line triggers in_code_block doc_last_commit_date doc_days_since_change claim_text
|
||||
.gitlab/issue_templates/Deploy-Übergabe.md 14 component-ref no 2026-08-02 7 Beispiel: axion1337.chat/threadnet-operating @ main, b6007c5 -->
|
||||
.gitlab/issue_templates/Deploy-Übergabe.md 67 status no 2026-08-02 7 Datensammlung und Zustellung getrennt scharf zu schalten ist fast immer
|
||||
.gitlab/issue_templates/Deploy-Übergabe.md 75 status no 2026-08-02 7 ## Bewusst offen gelassen
|
||||
CLAUDE.md 1 status;mirror-topology no 2026-08-09 0 # CLAUDE.md — übergreifende Arbeitskonventionen (kanonisch)
|
||||
CLAUDE.md 4 component-ref no 2026-08-09 0 Gruppe (axion1337.chat-Stack, ThreadNet-Repos, CFGMON/threadnet-operating,
|
||||
CLAUDE.md 6 component-ref no 2026-08-09 0 ESS-/Flux-Details in „ThreadNet Server Suite" = `axion1337.chat-gitops`) — bei
|
||||
CLAUDE.md 10 component-ref;path-claim;mirror-topology no 2026-08-09 0 > Push-Mirror unter `https://rohana.axion1337.de/sorb/management` von überall
|
||||
CLAUDE.md 11 status no 2026-08-09 0 > **lesbar** — dort diese Datei und die ADRs nachschlagen. Nur pushen ist tabu.
|
||||
CLAUDE.md 18 date-claim no 2026-08-09 0 ## Projektrealitäten (Stand 2026-08-01)
|
||||
CLAUDE.md 20 component-ref no 2026-08-09 0 **Das Lab ist die Quelle der Wahrheit** ([ADR-0002](decisions/0002-issues-und-management-ins-lab.md)):
|
||||
CLAUDE.md 22 path-claim no 2026-08-09 0 - Kanonische Repos liegen auf `git.lab/axion1337.chat/*` (nur im Lab/VPN
|
||||
CLAUDE.md 23 mirror-topology no 2026-08-09 0 auflösbar). Gitea/rohana wird per **Push-Mirror** beliefert und bleibt
|
||||
CLAUDE.md 24 mirror-topology no 2026-08-09 0 Flux-Source, Container-/npm-Registry und Release-Download
|
||||
CLAUDE.md 25 status;mirror-topology no 2026-08-09 0 ([ADR-0001](decisions/0001-gitlab-kanonisch-push-mirror.md)).
|
||||
CLAUDE.md 27 mirror-topology no 2026-08-09 0 liegen die *Baupläne*, auf Gitea eine Kopie, die der Cluster **ohne verfügbares
|
||||
CLAUDE.md 34 mirror-topology no 2026-08-09 0 - **Nie direkt zu Gitea pushen** (gespiegelte Repos) — der Mirror überschreibt
|
||||
CLAUDE.md 36 count;mirror-topology no 2026-08-09 0 - **Gespiegelt wird nur die Gruppe `axion1337.chat`** (die fünf Produkt-Repos und
|
||||
CLAUDE.md 37 component-ref no 2026-08-09 0 `management`). Die Gruppe **`homelab`** (`docs`, `wiki`, `wiki-bookstack`) hat
|
||||
CLAUDE.md 43 path-claim;mirror-topology no 2026-08-09 0 `verfahren/aar/` (dieses Repo ist gespiegelt), nicht nur in die READMEs der
|
||||
CLAUDE.md 45 count;mirror-topology no 2026-08-09 0 - Landet doch ein Commit auf Gitea (z. B. aus einer Host-Session ohne Lab-Route):
|
||||
CLAUDE.md 48 mirror-topology no 2026-08-09 0 von Gitea ziehen, `git am` (erhält Autorschaft), Push über git.lab.
|
||||
CLAUDE.md 49 status;mirror-topology no 2026-08-09 0 - **Issues leben auf git.lab.** Die alten Gitea-Issues sind geschlossen und
|
||||
CLAUDE.md 51 mirror-topology;issue-ref no 2026-08-09 0 (Gitea zählte PRs mit; z. B. Gitea#48 → GitLab#46) — alte „gitops#N"-Verweise
|
||||
CLAUDE.md 52 mirror-topology no 2026-08-09 0 meinen die Gitea-Nummer; verbindlich ist der Migrations-Fußtext im Issue.
|
||||
CLAUDE.md 54 mirror-topology no 2026-08-09 0 TURN-Rotations-CronJob schreibt weiter nach Gitea, weil er im Cluster läuft und
|
||||
CLAUDE.md 56 mirror-topology no 2026-08-09 0 **Die Rotation nicht von Hand nachziehen und den PR nie auf Gitea mergen** —
|
||||
CLAUDE.md 57 status;date-claim no 2026-08-09 0 das erledigt seit 2026-08-02 der geplante CI-Job `canonize_rotation` im
|
||||
CLAUDE.md 58 status no 2026-08-09 0 gitops-Repo täglich von git.lab aus. Scheitert er, bleibt die Pipeline rot;
|
||||
CLAUDE.md 62 date-claim no 2026-08-09 0 Das gitops-Wiki liegt seit 2026-08-02 auf git.lab (*Wiki*-Reiter im Projekt);
|
||||
CLAUDE.md 63 path-claim no 2026-08-09 0 ⚠️ der `wiki`-**Branch** im gitops-Repo ist ein überholter Mai-Abzug von `docs/`
|
||||
CLAUDE.md 65 path-claim no 2026-08-09 0 **axionwiki.lab** ([`homelab/wiki`](https://git.lab/homelab/wiki), Docusaurus) —
|
||||
CLAUDE.md 72 component-ref;count no 2026-08-09 0 - **Alles Offene ist ein Issue** — host-/infra-Scope hier im management-Projekt
|
||||
CLAUDE.md 73 issue-ref no 2026-08-09 0 (`host:`-Labels, alte IDs wie `CFGMON-01` bleiben im Titel), Projekt-Scope im
|
||||
CLAUDE.md 74 path-claim no 2026-08-09 0 jeweiligen Projekt. Kein neues Backlog-Markdown anlegen; `hosts/`/`shared/`
|
||||
CLAUDE.md 90 path-claim no 2026-08-09 0 - **Der Titel trägt keine Priorität.** Präfixe wie `[HIGH]`/`[MEDIUM]`/`[LOW]`
|
||||
CLAUDE.md 92 issue-ref no 2026-08-09 0 Alte Kennungen wie `CFGMON-01` bleiben, die benennen den Gegenstand, nicht die
|
||||
CLAUDE.md 94 count;mirror-topology no 2026-08-09 0 ⚠️ Der Grund ist keine Ästhetik: Aus der Gitea-Migration trugen 34 Issues ein
|
||||
CLAUDE.md 97 status no 2026-08-09 0 über dieselbe Sache sind schlimmer als eine unvollständige. Bereinigt 2026-08-06.
|
||||
CLAUDE.md 101 count no 2026-08-09 0 einzahlt**. Ein Issue ohne Meilenstein taucht in keiner Roadmap-Ansicht auf und
|
||||
CLAUDE.md 112 path-claim no 2026-08-09 0 `~/.config/gitlab-lab/token`) oder maskierte CI-Variablen.
|
||||
CLAUDE.md 116 date-claim no 2026-08-09 0 ## Commit-Konventionen (seit 2026-08-07)
|
||||
CLAUDE.md 136 count;date-claim no 2026-08-09 0 📎 Die Umstellung der Alt-Historie am 2026-08-07 hat 251 Commits neue SHAs
|
||||
CLAUDE.md 138 path-claim no 2026-08-09 0 [`shared/commit-zuordnung-2026-08-07.md`](shared/commit-zuordnung-2026-08-07.md)
|
||||
CLAUDE.md 146 mirror-topology no 2026-08-09 0 öffentlichen Gitea-Spiegel. Wer daraus wirklich keine Muster ableitbar haben
|
||||
CLAUDE.md 151 status no 2026-08-09 0 - **Aussagen mit Quelle:** Verifiziert (Messung/Konsole) klar von Vermutung
|
||||
CLAUDE.md 158 status no 2026-08-09 0 „fertig" heißt verifiziert.
|
||||
README.md 1 component-ref no 2026-08-02 7 # management
|
||||
README.md 8 date-claim no 2026-08-02 7 *(Bis 2026-08-01 hieß dieses Repo `Backlogs` und führte offene Punkte als
|
||||
README.md 11 date-claim no 2026-08-02 7 ## Repo-Topologie (seit 2026-08-01)
|
||||
README.md 13 component-ref;status;path-claim;mirror-topology no 2026-08-02 7 **Kanonisch lebt dieses Repo auf `git.lab`** (`axion1337.chat/management`, nur im
|
||||
README.md 15 component-ref no 2026-08-02 7 [ADR-0002](decisions/0002-issues-und-management-ins-lab.md)).
|
||||
README.md 16 component-ref;path-claim;mirror-topology no 2026-08-02 7 `rohana.axion1337.de/sorb/management` ist ein **Push-Mirror**: git.lab
|
||||
README.md 17 mirror-topology no 2026-08-02 7 überschreibt ihn bei jedem Push per Force. Deshalb **nie direkt zu Gitea
|
||||
README.md 18 mirror-topology no 2026-08-02 7 pushen** — solche Commits gehen beim nächsten Mirror-Lauf verloren (Rettung:
|
||||
README.md 19 mirror-topology no 2026-08-02 7 `.patch` von Gitea ziehen + `git am`, siehe
|
||||
README.md 22 date-claim no 2026-08-02 7 **Keine Ausnahmen mehr.** Die **Deploy-Übergabe-Issues** liefen bis 2026-08-02 auf
|
||||
README.md 23 mirror-topology no 2026-08-02 7 dem Gitea-Tracker, weil Hosts außerhalb des Labs `git.lab` nicht erreichten. Mit dem
|
||||
README.md 25 status no 2026-08-02 7 Grund entfallen — bei eingeschaltetem Tunnel erreicht CFGMON git.lab. Sie sind
|
||||
README.md 26 status;mirror-topology;issue-ref no 2026-08-02 7 umgezogen (LABNET-03), der Gitea-Tracker ist leer, die Vorlage liegt als
|
||||
README.md 33 path-claim no 2026-08-02 7 | [`CLAUDE.md`](CLAUDE.md) | **Kanonische Arbeitskonventionen für alle Agenten-Sessions** (Topologie, Framework, Secrets, Karpathy-Guidelines) |
|
||||
README.md 34 path-claim no 2026-08-02 7 | `vision/` | Eine Vision je Linie: Community (axion1337.chat), Tool (ThreadNet), Plattform (Homelab) |
|
||||
README.md 35 path-claim no 2026-08-02 7 | `roadmap.md` | Linien, Meilenstein-Kandidaten, Kadenz — GitLab-Milestones halten den Stand |
|
||||
README.md 36 path-claim no 2026-08-02 7 | `decisions/` | ADRs — Pflicht bei Architekturentscheidungen **und dauerhaften Ausnahmen** |
|
||||
README.md 37 path-claim no 2026-08-02 7 | `verfahren/` | Wie wir arbeiten: [Deploy-Übergabe/DoD](verfahren/deploy-uebergabe.md), [Refinement & Retro](verfahren/refinement.md), [AARs](verfahren/aar/), Werkzeuge |
|
||||
README.md 38 path-claim no 2026-08-02 7 | `hosts/`, `shared/` | **Bestand + Historie** je Host/Thema — u. a. [Branding](shared/branding.md) (Marke, Paletten, wo welches Theme eingestellt ist); offene Punkte sind Issues |
|
||||
README.md 43 path-claim no 2026-08-02 7 [`homelab/wiki`](https://git.lab/homelab/wiki)). **Geändert wird immer hier, nie dort.**
|
||||
README.md 48 issue-ref no 2026-08-02 7 `host:`-Labels; die alten IDs wie `CFGMON-01` bleiben im Titel) bzw. in den
|
||||
README.md 64 issue-ref no 2026-08-02 7 **IDs** (`CFGMON-01`, `ZONE-01`, …) werden **nie wiederverwendet**; sie leben in
|
||||
README.md 72 status no 2026-08-02 7 **Erledigtes und Verworfenes** bleibt sichtbar: Issues werden geschlossen (nicht
|
||||
README.md 78 component-ref no 2026-08-02 7 Konfiguration lebt in den Projekt-Repos (z. B. `threadnet-operating` für den
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 1 status;mirror-topology no 2026-08-01 8 # 0001 — git.lab ist kanonisch, Gitea wird per Push-Mirror beliefert
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 8 mirror-topology no 2026-08-01 8 3,7-GiB-Host) und Gitea Actions zeigte mehrere echte Bugs. Das Homelab-GitLab
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 14 path-claim;mirror-topology no 2026-08-01 8 `git.lab/axion1337.chat/*` ist die kanonische Heimat aller Repos; Gitea/rohana
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 15 mirror-topology no 2026-08-01 8 wird über Push-Mirrors beliefert und bleibt Flux-Source, Container-Registry,
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 16 mirror-topology no 2026-08-01 8 npm-Registry und Release-Download. **Direkte Pushes zu Gitea sind für gespiegelte
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 17 mirror-topology no 2026-08-01 8 Repos verboten** — der Mirror überschreibt divergenten Stand per Force.
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 22 mirror-topology no 2026-08-01 8 - Commits, die doch auf Gitea landen (z. B. Cluster-CronJobs ohne Lab-Route),
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 23 path-claim no 2026-08-01 8 brauchen das Kanonisierungs-Verfahren (`verfahren/deploy-uebergabe.md`):
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 24 status no 2026-08-01 8 `.patch` ziehen, `git am`, Push über git.lab. Zweimal live gebraucht.
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md 29 issue-ref no 2026-08-01 8 - CFGMON-CI aufrüsten (Swap/Limits): strukturell zu klein, verworfen mit CFGMON-10.
|
||||
decisions/0002-issues-und-management-ins-lab.md 1 component-ref no 2026-08-02 7 # 0002 — Issues und Management-Repo ziehen ins Lab („das Lab ist die Quelle der Wahrheit")
|
||||
decisions/0002-issues-und-management-ins-lab.md 8 mirror-topology no 2026-08-02 7 weiter auf Gitea — zwei Wahrheiten, driftgefährdet. Erreichbarkeits-Blocker
|
||||
decisions/0002-issues-und-management-ins-lab.md 9 date-claim;issue-ref no 2026-08-02 7 LABNET-01 (WireGuard-Roadwarrior) wurde am 2026-08-01 gelöst.
|
||||
decisions/0002-issues-und-management-ins-lab.md 13 status;mirror-topology no 2026-08-02 7 Alle Projekt-Issues leben auf git.lab (62 migriert, Gitea-Issues geschlossen mit
|
||||
decisions/0002-issues-und-management-ins-lab.md 14 component-ref;path-claim no 2026-08-02 7 Verweis); das Backlogs-Repo zieht als `axion1337.chat/management` ins Lab
|
||||
decisions/0002-issues-und-management-ins-lab.md 15 component-ref;path-claim;mirror-topology no 2026-08-02 7 (Push-Mirror → `sorb/management` auf Gitea). Das Lab ist die Quelle der Wahrheit.
|
||||
decisions/0002-issues-und-management-ins-lab.md 19 mirror-topology no 2026-08-02 7 - ⚠️ gitops-Issue-Nummern haben sich verschoben (Gitea zählte PRs mit); die
|
||||
decisions/0002-issues-und-management-ins-lab.md 21 mirror-topology no 2026-08-02 7 - ~~**Befristete Ausnahme:** Deploy-Übergabe-Issues laufen auf dem Gitea-Tracker
|
||||
decisions/0002-issues-und-management-ins-lab.md 22 component-ref;path-claim no 2026-08-02 7 von `sorb/management`, weil CFGMON git.lab (noch) nicht erreicht.~~
|
||||
decisions/0002-issues-und-management-ins-lab.md 23 component-ref;date-claim;issue-ref no 2026-08-02 7 ✅ **Zurückgebaut am 2026-08-02** (LABNET-03, [#13](https://git.lab/axion1337.chat/management/-/issues/13)):
|
||||
decisions/0002-issues-und-management-ins-lab.md 25 component-ref;issue-ref no 2026-08-02 7 sind nach git.lab gewandert ([#25](https://git.lab/axion1337.chat/management/-/issues/25),
|
||||
decisions/0002-issues-und-management-ins-lab.md 26 component-ref;mirror-topology;issue-ref no 2026-08-02 7 [#26](https://git.lab/axion1337.chat/management/-/issues/26)), der Gitea-Tracker ist
|
||||
decisions/0002-issues-und-management-ins-lab.md 27 status;path-claim no 2026-08-02 7 leer, die Vorlage liegt als `.gitlab/issue_templates/`. **Damit gilt diese ADR
|
||||
decisions/0002-issues-und-management-ins-lab.md 29 path-claim no 2026-08-02 7 Ausnahmen (siehe `README.md`) — dass sie befristet war und die Frist gehalten hat,
|
||||
decisions/0002-issues-und-management-ins-lab.md 31 mirror-topology no 2026-08-02 7 - Releases bleiben auf Gitea (öffentlicher Download-Pfad), ebenso das gitops-Wiki.
|
||||
decisions/0002-issues-und-management-ins-lab.md 35 mirror-topology no 2026-08-02 7 - Issues auf Gitea belassen: dauerhafte Doppelführung, Roadmap/Boards unmöglich.
|
||||
decisions/0003-cve-meldeweg-aggregiert.md 8 path-claim;issue-ref no 2026-08-01 8 Nachrichten und musste stummgeschaltet werden (gitops#51, AAR in `verfahren/aar/`).
|
||||
decisions/0003-cve-meldeweg-aggregiert.md 9 issue-ref no 2026-08-01 8 Gleichzeitig war entschieden (CFGMON-13), Release-/Security-Meldungen von
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 3 component-ref;issue-ref no 2026-08-02 7 **Status:** akzeptiert (umgesetzt und abgenommen 2026-08-01, Testreihe 1–7 in [management#12](https://git.lab/axion1337.chat/management/-/issues/12)) · **Datum:** 2026-08-01 · **Entscheider:** sorb
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 14 version;path-claim no 2026-08-02 7 Hetzner-Projektnetz `10.0.0.0/24` mit dem Lab-VLAN `10.58.73.0/24`. Der An/Aus-Schalter
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 27 version no 2026-08-02 7 | **UDM** | zweiter WG-**Server** „Matrix", UDP **51841**, Tunnelnetz **10.58.75.0/24**, „Alternate Address for Clients" = `178.25.213.70` |
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 28 version;path-claim no 2026-08-02 7 | **Client „Hetzner"** | `10.58.75.2`, **Networks Behind Client = `10.0.0.0/24`** |
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 29 status;version;path-claim no 2026-08-02 7 | **CFGMON** | WG-**Client/Initiator**, dauerhaft aktiv (`enable`) + `PersistentKeepalive 25`; AllowedIPs nur `10.58.73.0/24, 10.58.75.1/32`; Split-DNS nur `~lab` → `10.58.73.1`; `ip_forward` + iptables-ACCEPT in `DOCKER-USER` (ufw ist dort inaktiv), **kein NAT** |
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 30 version no 2026-08-02 7 | **Fritzbox** | Portfreigabe UDP **51841** → `192.168.178.20` |
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 31 version;path-claim no 2026-08-02 7 | **Hetzner** | Netz-Range auf **`10.0.0.0/8`** erweitert, Route `10.58.73.0/24 → 10.0.0.3` — damit erreichen alle Server im Netz das Lab **ohne eigene Konfiguration** |
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 32 version;path-claim no 2026-08-02 7 | **UniFi-Firewall** | Trennung vom Roadwarrior über **Quell-/Ziel-IP** (`10.58.75.0/24` + `10.0.0.0/24`), nicht über eine eigene Zone: erlaubt sind nur `10.58.73.17:443` (git.lab/Registry) und `10.58.73.1:53` (DNS); IoT und Arbeit sind für alle VPNs komplett gesperrt |
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 36 component-ref;date-claim;issue-ref no 2026-08-02 7 - ✅ **Eingelöst am 2026-08-02 (LABNET-03, [#13](https://git.lab/axion1337.chat/management/-/issues/13)):**
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 37 status no 2026-08-02 7 Übergabe-Issues können nicht nur umziehen — sie sind umgezogen
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 38 component-ref;issue-ref no 2026-08-02 7 ([#25](https://git.lab/axion1337.chat/management/-/issues/25),
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 39 component-ref;mirror-topology;issue-ref no 2026-08-02 7 [#26](https://git.lab/axion1337.chat/management/-/issues/26)), der Gitea-Tracker ist
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 40 status no 2026-08-02 7 leer, die Vorlage liegt als GitLab-Issue-Template, und die Ausnahme aus ADR-0002 ist
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 50 mirror-topology no 2026-08-02 7 Gitea-PR-Ausnahme bleibt bewusst bestehen.
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 54 mirror-topology no 2026-08-02 7 Job läuft im Lab und erreicht Gitea öffentlich. Das war der eigentliche Grund für
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md 56 issue-ref no 2026-08-02 7 - game.axion1337.de profitiert erst nach Aufnahme in den vSwitch (GAME-01).
|
||||
decisions/0005-pm-framework-kanban.md 1 component-ref no 2026-08-01 8 # 0005 — Projektmanagement: Kanban-Rückgrat mit leichten Scrum-Elementen
|
||||
decisions/0005-pm-framework-kanban.md 22 path-claim no 2026-08-01 8 | Product Goal / Vision | `vision/` (eine Datei je Linie) |
|
||||
decisions/0005-pm-framework-kanban.md 24 path-claim no 2026-08-01 8 | Review/Retro | AARs (`verfahren/aar/`) nach Deploys/Incidents |
|
||||
decisions/0005-pm-framework-kanban.md 25 path-claim no 2026-08-01 8 | Definition of Done | Deploy-Übergabe-Verfahren (`verfahren/deploy-uebergabe.md`) |
|
||||
decisions/0005-pm-framework-kanban.md 26 path-claim no 2026-08-01 8 | Roadmap/Meilensteine | Gruppen-Milestones + `roadmap.md` (CE: keine Epics/Roadmap-View) |
|
||||
decisions/0005-pm-framework-kanban.md 27 path-claim no 2026-08-01 8 | Entscheidungen | ADRs in `decisions/` |
|
||||
decisions/0005-pm-framework-kanban.md 32 component-ref;path-claim no 2026-08-01 8 - Das Backlogs-Repo wird zum Management-Repo `axion1337.chat/management`;
|
||||
decisions/0005-pm-framework-kanban.md 33 path-claim no 2026-08-01 8 offene Punkte aus `hosts/`/`shared/` sind Issues mit `host:`-Labels,
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 9 date-claim;mirror-topology no 2026-08-02 7 1. **Gitea-Wiki-Repo** `…gitops.wiki.git` — 15 Seiten, gepflegt bis 2026-07-31.
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 10 mirror-topology no 2026-08-02 7 Vom Push-Mirror **nicht** erfasst: ein Wiki ist ein eigenes Repo, kein Branch.
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 11 date-claim;mirror-topology no 2026-08-02 7 2. **`wiki`-Branch im gitops-Repo** — Stand 2026-05-14, mitgezogen, weil der Mirror
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 12 path-claim no 2026-08-02 7 alle Branches trägt. Inhalt: ein damaliger Abzug von `docs/`, kein gepflegtes Wiki.
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 13 path-claim no 2026-08-02 7 3. **`docs/` im main-Branch** — die eigentliche, laufend gepflegte Repo-Doku.
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 15 status no 2026-08-02 7 Dazu waren die GitLab-Wikis aller Projekte **leer**, und die Wiki-Inhalte enthielten
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 17 mirror-topology no 2026-08-02 7 2026-08-01 entfernt; Issues „in Gitea", obwohl migriert).
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 23 status;mirror-topology no 2026-08-02 7 „direkt-zu-Gitea"-Ausnahme aus [ADR-0001](0001-gitlab-kanonisch-push-mirror.md).
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 26 path-claim no 2026-08-02 7 [`homelab/wiki`](https://git.lab/homelab/wiki) baut mit Docusaurus eine Seite unter
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 28 component-ref;path-claim no 2026-08-02 7 Homelab (`homelab/docs`), Arbeitsweise (`management`). Die Inhalte werden beim Bau
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 33 path-claim no 2026-08-02 7 - **Änderungen gehören ins Quell-Repo**, nie ins Wiki-Repo — was dort in `content/`
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 43 path-claim no 2026-08-02 7 `.md` wird als CommonMark statt MDX geparst.
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 44 status no 2026-08-02 7 - **Der `wiki`-Branch im gitops-Repo ist überholt.** Er bleibt vorerst als Historie
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 47 component-ref;issue-ref no 2026-08-02 7 ([Issue #19](https://git.lab/axion1337.chat/management/-/issues/19)).
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 51 count no 2026-08-02 7 - **Alles in ein Repo verschmelzen:** Die Quellen haben unterschiedliche Leser und
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md 53 mirror-topology no 2026-08-02 7 - **Wiki auf Gitea belassen:** widerspricht ADR-0002 und hielt eine Ausnahme am
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 3 component-ref;status;issue-ref no 2026-08-02 7 **Status:** vorgeschlagen (Entscheidung offen → [Issue #20](https://git.lab/axion1337.chat/management/-/issues/20)) · **Datum:** 2026-08-02 · **Entscheider:** sorb
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 8 date-claim no 2026-08-02 7 Docusaurus als Lesefläche gebaut — läuft seit 2026-08-02 unter `axionwiki.lab`.
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 42 component-ref no 2026-08-02 7 Wahrheit neben git.lab — genau das, was [ADR-0002](0002-issues-und-management-ins-lab.md)
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 52 issue-ref no 2026-08-02 7 Datenbank ohne Sicherung ist eine Zeitbombe (vgl. CFGMON-09, wo genau das seit
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 53 status no 2026-08-02 7 2026-07-30 offen ist).
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 54 path-claim no 2026-08-02 7 - **Ein Einweg-Import zum Befüllen, aber keine Synchronisation** (`import/` im
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 56 path-claim no 2026-08-02 7 vergleichen, deshalb legt `provision.py` dieselben drei Bereiche an wie das
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 3 component-ref;issue-ref no 2026-08-06 3 **Status:** akzeptiert · **Datum:** 2026-08-06 (Struktur-Workshop [#17](https://git.lab/axion1337.chat/management/-/issues/17)) · **Entscheider:** sorb
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 9 issue-ref no 2026-08-06 3 LABNET-02-Nacht lief deshalb über die **docker-Gruppenmitgliedschaft** des Kontos
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 24 component-ref;issue-ref no 2026-08-06 3 [#14](https://git.lab/axion1337.chat/management/-/issues/14).
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 46 issue-ref no 2026-08-06 3 ohne diese Entscheidung wäre LABNET-02 gar nicht durchführbar gewesen.
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 50 count no 2026-08-06 3 AAR-Pflicht und „alles Offene wird ein Issue" auf diesem Host besonders zählen —
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 55 status no 2026-08-06 3 Kommt einer dazu, wird diese ADR abgelöst.
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 57 status no 2026-08-06 3 ## Offen, bewusst nicht vor der Entscheidung geklärt
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 66 issue-ref no 2026-08-06 3 nächsten Host-Session, festgehalten in #14.
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md 80 path-claim no 2026-08-06 3 und nicht bloß ein Absatz in `hosts/cfgmon.md`.
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 5 date-claim no 2026-08-09 0 > Nachgetragen am 2026-08-09 in der [Retro](../verfahren/retro/2026-08-09.md). Die
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 13 mirror-topology no 2026-08-09 0 öffentlichem Gitea-Spiegel heißt das: Jeder, der die Repos liest, kann ablesen, an
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 23 date-claim no 2026-08-09 0 **Regel ab 2026-08-07**, gültig für alle Repos der Gruppe `axion1337.chat` und die
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 29 count;date-claim no 2026-08-09 0 **Rückwirkend angewandt am 2026-08-09** auf **251 Commits** — alles aus dieser
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 34 date-claim no 2026-08-09 0 | gitops | 117 von 264 | ab 2026-07-27 |
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 35 component-ref no 2026-08-09 0 | management | 78 von 78 | vollständig |
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 36 component-ref;date-claim no 2026-08-09 0 | ThreadNet-Web | 47 von 50 | ab 2026-07-28 |
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 37 component-ref no 2026-08-09 0 | threadnet-call | 9 von 9 | vollständig |
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 39 status no 2026-08-09 0 Dabei wurden 17 Tags mit umgezogen und die Autoren-Identitäten vereinheitlicht —
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 54 path-claim no 2026-08-09 0 [`shared/commit-zuordnung-2026-08-07.md`](../shared/commit-zuordnung-2026-08-07.md).
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 61 status no 2026-08-09 0 wieder aktiv.
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 66 mirror-topology no 2026-08-09 0 liegen im selben GitLab und teilweise auf dem öffentlichen Spiegel — und sind
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 72 component-ref no 2026-08-09 0 Das Force-Push der umgezogenen Tags hat in ThreadNet-Web **drei Release-Pipelines
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 74 version no 2026-08-09 0 `v0.4.0` aus altem Quellcode gegen heutige Basis-Images neu gebaut und
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 77 component-ref;status;issue-ref no 2026-08-09 0 ThreadNet-Web#14; die Sperre ist seit `3cb43f5` scharf.
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md 86 count no 2026-08-09 0 angefasst (`Scrublord@Mac.Bad`, 135 Commits aus der Zeit vor dieser
|
||||
decisions/README.md 6 status no 2026-08-01 8 auf `abgelöst durch NNNN` gesetzt.
|
||||
decisions/README.md 13 mirror-topology no 2026-08-01 8 git.lab-Cutover 2026-08-01: die „Übergabe-Issues bleiben auf Gitea"-Ausnahme
|
||||
decisions/template.md 3 status no 2026-08-01 8 **Status:** vorgeschlagen | akzeptiert | abgelöst durch NNNN · **Datum:** JJJJ-MM-TT · **Entscheider:** sorb
|
||||
hosts/cfgmon.md 3 mirror-topology no 2026-08-09 0 Monitoring-Stack, Gitea und der Reverse Proxy für alles Öffentliche.
|
||||
hosts/cfgmon.md 8 version no 2026-08-09 0 | **OS** | Ubuntu 24.04.4 LTS |
|
||||
hosts/cfgmon.md 9 version no 2026-08-09 0 | **IPv4** | `188.245.193.243` |
|
||||
hosts/cfgmon.md 11 version no 2026-08-09 0 | **Privat** | `10.0.0.3` (`enp7s0`, Hetzner-Netz — dort liegt auch k3s auf `10.0.0.2`) |
|
||||
hosts/cfgmon.md 12 mirror-topology no 2026-08-09 0 | **DNS** | `rohana.axion1337.de` → Gitea, `selendis.axion1337.de` → Grafana |
|
||||
hosts/cfgmon.md 19 component-ref;version;path-claim no 2026-08-09 0 | prometheus | `prom/prometheus:v3.3.1` | `monitoring` | `sorb/threadnet-operating`, `monitoring/` |
|
||||
hosts/cfgmon.md 20 version;path-claim no 2026-08-09 0 | loki | `grafana/loki:3.7.1` | `monitoring` | dito |
|
||||
hosts/cfgmon.md 21 version;path-claim no 2026-08-09 0 | grafana | `grafana/grafana:12.0.0` | `monitoring` | dito |
|
||||
hosts/cfgmon.md 22 version;path-claim no 2026-08-09 0 | alloy | `grafana/alloy:v1.16.0` | `monitoring` | dito |
|
||||
hosts/cfgmon.md 23 version;path-claim no 2026-08-09 0 | node-exporter | `prom/node-exporter:v1.9.1` | `monitoring` | dito |
|
||||
hosts/cfgmon.md 24 component-ref;status;version;path-claim;date-claim;mirror-topology;issue-ref no 2026-08-09 0 | traefik | `traefik:v3.7.9` | `thread-net-git` | `sorb/thread-net-git`, seit 2026-07-30 in `main` (siehe [CFGMON-02](#cfgmon-02--traefik-gitea-cadvisor-und-runner-unter-iac-gebracht--erledigt-2026-07-30)) |
|
||||
hosts/cfgmon.md 25 component-ref;version;path-claim;mirror-topology no 2026-08-09 0 | gitea | `gitea/gitea:1.27.0` | `thread-net-git` | dito, gepinnt (war `:latest`) |
|
||||
hosts/cfgmon.md 26 component-ref;version;path-claim no 2026-08-09 0 | cadvisor | `gcr.io/cadvisor/cadvisor:v0.49.1` | `thread-net-git` | dito, gepinnt (war `:latest`) |
|
||||
hosts/cfgmon.md 27 component-ref;version;path-claim;mirror-topology;issue-ref no 2026-08-09 0 | runner | `gitea/act_runner:0.6.1` | `thread-net-git` | dito, Container `gitea-runner`, siehe CFGMON-02 |
|
||||
hosts/cfgmon.md 28 version;path-claim no 2026-08-09 0 | portainer_agent | `portainer/agent:2.27.5` | — | standalone, kein Compose |
|
||||
hosts/cfgmon.md 32 component-ref;version no 2026-08-09 0 (`10.0.0.2:9100`), `pterodactyl_host_node` und `gameserver_cadvisor`
|
||||
hosts/cfgmon.md 33 version no 2026-08-09 0 (beide `157.90.155.206`, siehe [game](game.md)).
|
||||
hosts/cfgmon.md 38 component-ref no 2026-08-09 0 [management-Projekt](https://git.lab/axion1337.chat/management/-/issues); die IDs bleiben in den Issue-Titeln erhalten.
|
||||
hosts/cfgmon.md 41 component-ref;date-claim;issue-ref no 2026-08-09 0 - [CFGMON-01 — Zertifikatserneuerung braucht offene Ports (zeitkritisch ab 2026-09-28)](https://git.lab/axion1337.chat/management/-/issues/7)
|
||||
hosts/cfgmon.md 42 component-ref;issue-ref no 2026-08-09 0 - [CFGMON-03 — Prometheus-Remote-Write/Loki öffentlich ohne Auth (Weg A, nachgelagerte Prüfung)](https://git.lab/axion1337.chat/management/-/issues/8)
|
||||
hosts/cfgmon.md 43 component-ref;issue-ref no 2026-08-09 0 - [CFGMON-04 — Grafana-Admin-Credentials aus `.env` gelten nicht für die API](https://git.lab/axion1337.chat/management/-/issues/9)
|
||||
hosts/cfgmon.md 44 component-ref;mirror-topology;issue-ref no 2026-08-09 0 - [CFGMON-09 — Gitea-Backups off-host (⚠️ Backup-Cron deaktiviert)](https://git.lab/axion1337.chat/management/-/issues/10)
|
||||
hosts/cfgmon.md 46 mirror-topology;issue-ref no 2026-08-09 0 ## CFGMON-11 — Gitea-CI-Rückbau nach GitLab-Umzug
|
||||
hosts/cfgmon.md 48 status no 2026-08-09 0 **Status:** erledigt (2026-07-31 spätabends) — bis auf einen kosmetischen Handgriff:
|
||||
hosts/cfgmon.md 49 component-ref;path-claim no 2026-08-09 0 auf CFGMON `cd /opt/thread-net-git && git checkout main && git pull` (Checkout parkt
|
||||
hosts/cfgmon.md 52 component-ref;path-claim no 2026-08-09 0 **Dazu neu (2026-08-01 ~05:00):** Auch `/opt/threadnet-operating` braucht einmal
|
||||
hosts/cfgmon.md 53 path-claim no 2026-08-09 0 `git fetch && git reset --hard origin/main` — der State-Persistenz-Commit wurde
|
||||
hosts/cfgmon.md 54 mirror-topology no 2026-08-09 0 dort direkt nach Gitea gepusht (dfe04c4a), vom Mirror überschrieben, vom Mac aus
|
||||
hosts/cfgmon.md 55 status;mirror-topology no 2026-08-09 0 per Patch gerettet und kanonisch als `6ffab68` neu aufgelegt (inhaltsgleich,
|
||||
hosts/cfgmon.md 58 status no 2026-08-09 0 **Erledigt (2026-08-01, autonom):**
|
||||
hosts/cfgmon.md 59 component-ref no 2026-08-09 0 - Actions-Toggles deaktiviert: `ThreadNet-Web`, `threadnet-call`, `axion1337.chat-gitops`
|
||||
hosts/cfgmon.md 60 component-ref;path-claim no 2026-08-09 0 - `ThreadNet-Web`: alle `.github/workflows/`-Dateien entfernt (Commit `a876758`)
|
||||
hosts/cfgmon.md 61 path-claim;mirror-topology no 2026-08-09 0 - gitops: Verifikations-Job nach GitLab portiert + `.gitea/workflows/` entfernt
|
||||
hosts/cfgmon.md 62 status;path-claim;mirror-topology no 2026-08-09 0 (Commit `5e46a24`, Pipeline grün, Mirror→Gitea verifiziert; `milestone-release.yml`
|
||||
hosts/cfgmon.md 63 issue-ref no 2026-08-09 0 war toter Code, siehe #33). Flux unberührt.
|
||||
hosts/cfgmon.md 64 component-ref;path-claim no 2026-08-09 0 - `thread-net-git`: Runner-Service/Config/`.env.example` per Commit `d904734` entfernt
|
||||
hosts/cfgmon.md 65 mirror-topology no 2026-08-09 0 (auf git.lab; Mirror trägt nach Gitea) — **noch nicht deployt**, siehe unten.
|
||||
hosts/cfgmon.md 66 component-ref;path-claim no 2026-08-09 0 - Registry-Entscheidung npm final (Evidenz: `@sorb/threadnet-call-embedded` ist
|
||||
hosts/cfgmon.md 67 path-claim;mirror-topology no 2026-08-09 0 pnpm-Dependency von `apps/web`, Lockfile pinnt Tarball-URL auf rohana): **bleibt Gitea**.
|
||||
hosts/cfgmon.md 70 component-ref;status no 2026-08-09 0 1. ~~`thread-net-git`-Stand deployen~~ **erledigt (2026-07-31 spätabends, via
|
||||
hosts/cfgmon.md 71 path-claim no 2026-08-09 0 CFGMON-Session)**: Runner-Container/Netz/`runner-data/`/`.env`-Zeile entfernt,
|
||||
hosts/cfgmon.md 72 mirror-topology no 2026-08-09 0 `builder-1` aus der Gitea-Admin-UI gelöscht, Actions-Registrierungstoken rotiert.
|
||||
hosts/cfgmon.md 75 component-ref;status;mirror-topology;issue-ref no 2026-08-09 0 Mac→git.lab→Mirror (`15c8f2d`), Hergang in thread-net-git#1 (geschlossen).
|
||||
hosts/cfgmon.md 77 mirror-topology no 2026-08-09 0 getippte Token (`a89bfb…`) war der Gitea-**Actions-Runner-Registrierungstoken**
|
||||
hosts/cfgmon.md 82 status no 2026-08-09 0 3. ~~Token-Rotation b~~ **erledigt (2026-07-31 abends)**: Generalschlüssel
|
||||
hosts/cfgmon.md 87 path-claim;mirror-topology no 2026-08-09 0 `~/.config/gitea-rohana/token` auf dem Mac), `claude-push` (write:repository,
|
||||
hosts/cfgmon.md 88 version;path-claim;mirror-topology no 2026-08-09 0 `~/.config/gitea-rohana/push-token`). Erster CI-Publish `0.19.2-threadnet.6`
|
||||
hosts/cfgmon.md 89 component-ref;status;issue-ref no 2026-08-09 0 verifiziert → threadnet-call#1 geschlossen. Alle Klartext-Reste entfernt
|
||||
hosts/cfgmon.md 94 path-claim no 2026-08-09 0 (`git.lab/axion1337.chat`, Gruppe mit importierten Projekten angelegt; die Domain ist
|
||||
hosts/cfgmon.md 97 date-claim;mirror-topology no 2026-08-09 0 pausieren). Der am 2026-07-30 auf Gitea-Seite aufgebaute CI-Unterbau wird damit teilweise
|
||||
hosts/cfgmon.md 102 component-ref;date-claim no 2026-08-09 0 - **Actions-Toggle** `has_actions` bei `ThreadNet-Web` (am 2026-07-30 per API aktiviert)
|
||||
hosts/cfgmon.md 103 component-ref no 2026-08-09 0 wieder deaktivieren, ebenso bei `threadnet-call` (stoppt die fehlschlagende
|
||||
hosts/cfgmon.md 105 component-ref;path-claim no 2026-08-09 0 - **`.github/workflows/` in `ThreadNet-Web`** (der kuratierte 6-Dateien-Satz) — wird durch
|
||||
hosts/cfgmon.md 106 path-claim no 2026-08-09 0 `.gitlab-ci.yml` ersetzt. Die Erkenntnisse aus den Läufen vom 2026-07-30 mitnehmen:
|
||||
hosts/cfgmon.md 110 component-ref no 2026-08-09 0 - **Geerbte Upstream-Workflows in `threadnet-call`** (build/publish/test/translations/
|
||||
hosts/cfgmon.md 113 path-claim;mirror-topology no 2026-08-09 0 der Gitea-Admin-UI deregistrieren und `runner-data/.runner` auf dem Host entfernen.
|
||||
hosts/cfgmon.md 114 component-ref;path-claim no 2026-08-09 0 - **Token: npm-Token in `threadnet-call`s untracked `embedded/web/.npmrc`** (Klartext im
|
||||
hosts/cfgmon.md 121 component-ref no 2026-08-09 0 - **Runner-Service in `thread-net-git` ganz entfernen?** Hängt daran, ob das gitops-Repo
|
||||
hosts/cfgmon.md 122 path-claim no 2026-08-09 0 seinen leichten `deploy-on-push.yml` (YAML-Validierung/Notification, läuft sauber)
|
||||
hosts/cfgmon.md 124 component-ref;path-claim no 2026-08-09 0 Revert-Commit in `thread-net-git`: Compose-Service `runner`, `runner/config.yaml`,
|
||||
hosts/cfgmon.md 125 path-claim no 2026-08-09 0 `.env.example` (RUNNER_TOKEN), Cache-Port-Bindung 8088, `runner-data/`.
|
||||
hosts/cfgmon.md 126 component-ref;path-claim;mirror-topology no 2026-08-09 0 - **Registry-Ziel für `@sorb/threadnet-call-embedded`**: bleibt die Gitea-npm-Registry
|
||||
hosts/cfgmon.md 128 status;mirror-topology no 2026-08-09 0 GitLab-Package-Registry (dann läuft die Gitea-Package-Seite leer).
|
||||
hosts/cfgmon.md 129 mirror-topology no 2026-08-09 0 - **Container-Images bleiben in der rohana-Registry** (Flux/k8s pullt von dort — spricht
|
||||
hosts/cfgmon.md 131 mirror-topology no 2026-08-09 0 **neuen** Deploy-/Push-Token für die rohana-Registry (Neuanlage, kein Rückbau).
|
||||
hosts/cfgmon.md 135 mirror-topology no 2026-08-09 0 Gitea selbst, gitops-Repo als Flux-Source, Issues/Wiki/dieses Repo, der
|
||||
hosts/cfgmon.md 136 mirror-topology;issue-ref no 2026-08-09 0 API-Token für Issue-Verwaltung, das Gitea-Backup-Script (CFGMON-09).
|
||||
hosts/cfgmon.md 139 component-ref;status no 2026-08-09 0 umgezogen — [ADR-0002](../decisions/0002-issues-und-management-ins-lab.md) —,
|
||||
hosts/cfgmon.md 140 component-ref no 2026-08-09 0 das Repo dabei von `Backlogs` zu `management` umgewidmet
|
||||
hosts/cfgmon.md 142 mirror-topology no 2026-08-09 0 den damaligen Rückbau der Gitea-CI, nicht auf Dauer.)*
|
||||
hosts/cfgmon.md 145 component-ref;mirror-topology;issue-ref no 2026-08-09 0 [ThreadNet-Web#2](https://rohana.axion1337.de/sorb/ThreadNet-Web/issues/2),
|
||||
hosts/cfgmon.md 146 component-ref;mirror-topology;issue-ref no 2026-08-09 0 [threadnet-call#1](https://rohana.axion1337.de/sorb/threadnet-call/issues/1).
|
||||
hosts/cfgmon.md 148 status no 2026-08-09 0 **Nächster Schritt:** die drei manuellen Schritte oben, dann → erledigt.
|
||||
hosts/cfgmon.md 150 issue-ref no 2026-08-09 0 ## CFGMON-13 — Absender-Design für Release-/CVE-Meldungen: eigener Bot?
|
||||
hosts/cfgmon.md 154 component-ref;mirror-topology;issue-ref no 2026-08-09 0 Alertmanager-Routing: [gitops#47](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/issues/47).
|
||||
hosts/cfgmon.md 160 issue-ref no 2026-08-09 0 1. **release-watch** (gitops#22, deploybereit): Upstream-Releases/Security-Releases
|
||||
hosts/cfgmon.md 162 issue-ref no 2026-08-09 0 2. **Trivy-CVE-Scans** (gitops#31, läuft wöchentlich in der Lab-CI): Funde landen
|
||||
hosts/cfgmon.md 168 status no 2026-08-09 0 scharf/stumm schaltbar bleibt? Oder bewusst alles über `@alerts` bündeln?
|
||||
hosts/cfgmon.md 174 mirror-topology;issue-ref no 2026-08-09 0 ## CFGMON-12 — Gitea-Projektmetadaten nach GitLab umziehen/integrieren
|
||||
hosts/cfgmon.md 176 component-ref;status;mirror-topology;issue-ref no 2026-08-09 0 **Status:** abgelöst durch [gitops#48](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/issues/48) (2026-08-01, sorb: HOHE Priorität — vollständige Issue-Migration + zentrale Gruppen-Roadmap; Plan-Skizze und die offene Erreichbarkeits-Entscheidung git.lab-only vs. extern stehen dort)
|
||||
hosts/cfgmon.md 178 count;date-claim no 2026-08-09 0 ✅ **Umgesetzt am 2026-08-01/02**: Die Migration ist durch — 62 Issues liegen auf
|
||||
hosts/cfgmon.md 179 status;mirror-topology no 2026-08-09 0 git.lab, die Gitea-Issues sind geschlossen und tragen einen Migrations-Fußtext.
|
||||
hosts/cfgmon.md 181 mirror-topology no 2026-08-09 0 die Aufzählung „Noch auf Gitea" gilt nicht mehr. Die zunächst verbliebene Ausnahme
|
||||
hosts/cfgmon.md 182 date-claim;issue-ref no 2026-08-09 0 für Deploy-Übergabe-Issues ist am 2026-08-02 mit LABNET-03 ebenfalls zurückgebaut.
|
||||
hosts/cfgmon.md 187 status;mirror-topology no 2026-08-09 0 Projektmetadaten liegen weiterhin auf Gitea/rohana. Verifiziert per API am
|
||||
hosts/cfgmon.md 190 mirror-topology no 2026-08-09 0 Noch auf Gitea:
|
||||
hosts/cfgmon.md 192 component-ref;issue-ref no 2026-08-09 0 - **Issues** inkl. Kommentare/Labels: ThreadNet-Web (#2, #5, …), threadnet-call (#1),
|
||||
hosts/cfgmon.md 193 issue-ref no 2026-08-09 0 gitops (#24, #25, #32, …)
|
||||
hosts/cfgmon.md 195 path-claim;mirror-topology no 2026-08-09 0 - **Wiki** (gitops-Wiki mit `00-TASKS.md`-Log — bisher bewusst direkt-Gitea)
|
||||
hosts/cfgmon.md 197 mirror-topology;issue-ref no 2026-08-09 0 [CFGMON-11](#cfgmon-11--gitea-ci-rückbau-nach-gitlab-umzug) auf rohana — bei
|
||||
hosts/cfgmon.md 202 mirror-topology no 2026-08-09 0 1. **GitLab-Gitea-Importer vs. API-Skript** — der Importer verliert Autorenschaft
|
||||
hosts/cfgmon.md 205 mirror-topology no 2026-08-09 0 2. **Erreichbarkeit**: rohana ist von überall erreichbar, git.lab nur im Homelab —
|
||||
hosts/cfgmon.md 208 mirror-topology no 2026-08-09 0 direkt-Gitea).
|
||||
hosts/cfgmon.md 213 mirror-topology no 2026-08-09 0 auf Gitea" als geltende Regel.
|
||||
hosts/cfgmon.md 219 component-ref;issue-ref no 2026-08-09 0 ### CFGMON-10 — threadnet-call-CI schlägt am Artifact-Schritt fehl · verworfen 2026-07-30
|
||||
hosts/cfgmon.md 221 component-ref;date-claim no 2026-08-09 0 Ausgelöst durch einen Push nach `threadnet-call` am 2026-07-30: der Runner (`builder-1`)
|
||||
hosts/cfgmon.md 226 component-ref no 2026-08-09 0 **Hypothese inzwischen im Kern bestätigt** — beim parallelen ThreadNet-Web-CI-Versuch
|
||||
hosts/cfgmon.md 229 mirror-topology no 2026-08-09 0 ohne Swap, trägt daneben Gitea/Traefik/Monitoring) kann das strukturell nicht liefern.
|
||||
hosts/cfgmon.md 233 mirror-topology;issue-ref no 2026-08-09 0 [CFGMON-11](#cfgmon-11--gitea-ci-rückbau-nach-gitlab-umzug)), CFGMON bleibt bei leichten
|
||||
hosts/cfgmon.md 234 component-ref;mirror-topology;issue-ref no 2026-08-09 0 Jobs. Issue-Seite: [threadnet-call#1](https://rohana.axion1337.de/sorb/threadnet-call/issues/1).
|
||||
hosts/cfgmon.md 236 status;mirror-topology;issue-ref no 2026-08-09 0 ### CFGMON-02 — Traefik, Gitea, cAdvisor und Runner unter IaC gebracht · erledigt 2026-07-30
|
||||
hosts/cfgmon.md 238 component-ref;path-claim no 2026-08-09 0 Liefen ursprünglich im Compose-Projekt `thread-net-git` aus `/data/compose/8`, einem von
|
||||
hosts/cfgmon.md 239 component-ref;path-claim no 2026-08-09 0 Portainer verwalteten Stack ohne Repo dazu. Jetzt in `sorb/thread-net-git`: `:latest`-Tags
|
||||
hosts/cfgmon.md 240 component-ref;version;mirror-topology no 2026-08-09 0 gepinnt (Gitea `1.27.0`, cAdvisor `v0.49.1`), Projektname `thread-net-git` beibehalten
|
||||
hosts/cfgmon.md 242 mirror-topology no 2026-08-09 0 Volume-Namen, Downgrade-Verbot für Gitea), nächtliches Backup-Script. Zusätzlich neu: ein
|
||||
hosts/cfgmon.md 243 version;path-claim;mirror-topology no 2026-08-09 0 `runner`-Service (`gitea/act_runner:0.6.1`, Container `gitea-runner`, Labels
|
||||
hosts/cfgmon.md 244 path-claim no 2026-08-09 0 `ubuntu-latest`/`linux-build`/`win-wine` — die letzten beiden gezielt für Electron-Builds)
|
||||
hosts/cfgmon.md 245 issue-ref no 2026-08-09 0 — ursprünglich unter [CFGMON-08](#cfgmon-08) als offene Frage gelistet, siehe dort.
|
||||
hosts/cfgmon.md 247 status;path-claim no 2026-08-09 0 Entstanden auf Branch `rework/stack`, zunächst nicht gemergt (produktiv aber schon aktiv).
|
||||
hosts/cfgmon.md 248 path-claim no 2026-08-09 0 **2026-07-30 nach `main` gemergt** (`origin/main` == `origin/rework/stack` auf `02b3224`,
|
||||
hosts/cfgmon.md 249 status no 2026-08-09 0 verifiziert) — damit spiegelt die Standardansicht des Repos jetzt den Live-Stand.
|
||||
hosts/cfgmon.md 250 status;date-claim no 2026-08-09 0 Verifiziert am 2026-07-30 über die Compose-Labels der laufenden Container
|
||||
hosts/cfgmon.md 251 component-ref;path-claim;mirror-topology no 2026-08-09 0 (`working_dir: /opt/thread-net-git`) und `docker compose ls`. `gitea-data` ist als
|
||||
hosts/cfgmon.md 255 mirror-topology no 2026-08-09 0 Zum Bootstrapping-Problem (Definition von Gitea liegt in Gitea): mitigiert,
|
||||
hosts/cfgmon.md 256 mirror-topology no 2026-08-09 0 weil das Deploy-Verzeichnis selbst der Checkout ist — fällt Gitea aus, liegt
|
||||
hosts/cfgmon.md 259 mirror-topology;issue-ref no 2026-08-09 0 [CFGMON-09](#cfgmon-09--gitea-backups-off-host-in-die-storage-box-eigenes-borg-repo).
|
||||
hosts/cfgmon.md 261 status;issue-ref no 2026-08-09 0 ### CFGMON-05 — Monitoring-Stack unter IaC bringen · erledigt 2026-07-30
|
||||
hosts/cfgmon.md 263 path-claim no 2026-08-09 0 Der Stack lief aus `/opt/monitoring` ohne Versionierung und mit `:latest`-Tags. Jetzt
|
||||
hosts/cfgmon.md 264 component-ref;path-claim no 2026-08-09 0 in `sorb/threadnet-operating` unter `monitoring/`, Images gepinnt,
|
||||
hosts/cfgmon.md 268 status;issue-ref no 2026-08-09 0 ### CFGMON-06 — Grafana-Certresolver zeigte ins Leere · erledigt 2026-07-30
|
||||
hosts/cfgmon.md 273 path-claim no 2026-08-09 0 aus. Aus dem Altbestand in `/opt/monitoring` unverändert übernommen und dort
|
||||
hosts/cfgmon.md 276 component-ref no 2026-08-09 0 Behoben in `threadnet-operating`, Commit `a400f8a`. Cert von Let's Encrypt (YR2)
|
||||
hosts/cfgmon.md 277 date-claim no 2026-08-09 0 ausgestellt, gültig bis 2026-10-28 — die Nachfolge davon ist
|
||||
hosts/cfgmon.md 278 issue-ref no 2026-08-09 0 [CFGMON-01](#cfgmon-01--zertifikatserneuerung-braucht-offene-ports-ipv4-und-ipv6).
|
||||
hosts/cfgmon.md 280 status;issue-ref no 2026-08-09 0 ### CFGMON-07 — Alloy verlor seine Positions-Datei bei jedem Deploy · erledigt 2026-07-30
|
||||
hosts/cfgmon.md 282 path-claim no 2026-08-09 0 `--storage.path=/var/lib/alloy/data` war gesetzt, aber ohne Volume: die
|
||||
hosts/cfgmon.md 288 status no 2026-08-09 0 Behoben durch ein `alloy_data`-Volume, Commit `edac97e`. Verifiziert: Positions
|
||||
hosts/cfgmon.md 291 status;mirror-topology;issue-ref no 2026-08-09 0 ### CFGMON-08 — Kein Gitea-Actions-Runner registriert, Standort noch offen · erledigt 2026-07-30
|
||||
hosts/cfgmon.md 294 status no 2026-08-09 0 existiert und wo einer laufen sollte, noch offen sei. Beides falsch — ein Runner
|
||||
hosts/cfgmon.md 295 component-ref;path-claim no 2026-08-09 0 (`builder-1`) läuft bereits, auf CFGMON, als Teil von `thread-net-git`s `rework/stack`-
|
||||
hosts/cfgmon.md 297 status;mirror-topology;issue-ref no 2026-08-09 0 [CFGMON-02](#cfgmon-02--traefik-gitea-cadvisor-und-runner-unter-iac-gebracht--erledigt-2026-07-30) — hier
|
||||
hosts/cfgmon.md 298 component-ref;mirror-topology;issue-ref no 2026-08-09 0 nicht dupliziert. [gitops#33](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/issues/33)
|
||||
hosts/cfgmon.md 299 status no 2026-08-09 0 (dieselbe falsche Prämisse) entsprechend korrigiert/geschlossen.
|
||||
hosts/game.md 3 component-ref no 2026-08-02 7 Pterodactyl- / Gameserver-Host.
|
||||
hosts/game.md 7 version no 2026-08-02 7 | **IPv4** | `157.90.155.206` |
|
||||
hosts/game.md 10 version;date-claim no 2026-08-02 7 | **Privat** | `10.0.0.4` (im vSwitch seit 2026-08-02) |
|
||||
hosts/game.md 20 component-ref no 2026-08-02 7 [axion1337.chat/game-operating](https://git.lab/axion1337.chat/game-operating)
|
||||
hosts/game.md 25 status no 2026-08-02 7 Deployment ist gewollt, aber bewusst **zurückgestellt, bis das Matrix-Projekt
|
||||
hosts/game.md 31 component-ref no 2026-08-02 7 **Pterodactyl** (Gameserver-Verwaltung, in Benutzung durch Bekannte des Betreibers
|
||||
hosts/game.md 36 version;path-claim no 2026-08-02 7 | `pterodactyl` (Panel) | `ghcr.io/pterodactyl/panel:v1.12.0` |
|
||||
hosts/game.md 37 component-ref;version;path-claim no 2026-08-02 7 | `wings` (Daemon, fährt die Gameserver als Docker-Container) | `ghcr.io/pterodactyl/wings:v1.12.0` |
|
||||
hosts/game.md 41 version no 2026-08-02 7 **Eigener Monitoring-Stack** (grafana-oss, prometheus v3.0.0 mit 15 d Retention,
|
||||
hosts/game.md 42 version no 2026-08-02 7 loki 3.1.1, promtail 3.1.1, node-exporter v1.8.1, cadvisor v0.49.2). Wird
|
||||
hosts/game.md 43 status no 2026-08-02 7 perspektivisch von CFGMON abgelöst — siehe unten.
|
||||
hosts/game.md 47 issue-ref no 2026-08-02 7 GAME-01: Auf 9100/8080 des Hosts lauscht nichts, CFGMONs Scrape-Ziele auf der
|
||||
hosts/game.md 55 version no 2026-08-02 7 | Port | von CFGMON (`188.245.193.243`, 2026-08-01) | vom Hausanschluss (`178.25.213.70`, 2026-08-02) |
|
||||
hosts/game.md 57 status no 2026-08-02 7 | 80 / 443 | offen | offen (HTTP 404 bzw. 503) |
|
||||
hosts/game.md 58 status no 2026-08-02 7 | **22** | **Timeout** | **offen** |
|
||||
hosts/game.md 67 date-claim no 2026-08-02 7 Es fehlte also keine Ausnahme für CFGMON. Seit 2026-08-02 liegt der Host im
|
||||
hosts/game.md 68 version no 2026-08-02 7 vSwitch (`10.0.0.4`); die Monitoring-Anbindung läuft künftig **per Push über das
|
||||
hosts/game.md 69 version no 2026-08-02 7 private Netz** — Alloy sammelt lokal ein und schiebt nach `10.0.0.3`, wodurch der
|
||||
hosts/game.md 71 component-ref;issue-ref no 2026-08-02 7 k3s-Cluster. Details: [GAME-01](https://git.lab/axion1337.chat/management/-/issues/2).
|
||||
hosts/game.md 80 component-ref no 2026-08-02 7 [management-Projekt](https://git.lab/axion1337.chat/management/-/issues); die IDs bleiben in den Issue-Titeln erhalten.
|
||||
hosts/game.md 83 component-ref;date-claim;issue-ref no 2026-08-02 7 - [GAME-01 — Host von CFGMON aus nicht erreichbar, 2 Targets down (⚠️ Silences bis 2026-08-04)](https://git.lab/axion1337.chat/management/-/issues/2)
|
||||
hosts/game.md 84 component-ref;issue-ref no 2026-08-02 7 - [GAME-02 — `www.game.axion1337.de` ist überflüssig](https://git.lab/axion1337.chat/management/-/issues/3)
|
||||
hosts/matrix.md 8 version no 2026-08-09 0 | **IPv4** | `49.13.132.245` |
|
||||
hosts/matrix.md 10 version no 2026-08-09 0 | **Privat** | `10.0.0.2` (`enp7s0`, dasselbe Hetzner-Netz wie CFGMON `10.0.0.3`) |
|
||||
hosts/matrix.md 12 path-claim no 2026-08-09 0 | **DNS** | `matrix.axion1337.de` **und** `matrix.axion1337.chat` zeigen auf dieselbe IP — ebenso `axion1337.chat` (Apex) und `account.axion1337.chat` (MAS). `axion1337.de` ist die ältere/Registrar-Domain (IONOS-Mail läuft dort), `axion1337.chat` die eigentliche Matrix-Service-Domain. |
|
||||
hosts/matrix.md 15 path-claim no 2026-08-09 0 **Inventarisiert** (direkter SSH-Zugriff, `~/.ssh/config`-Alias `axion1337`, Port 2248):
|
||||
hosts/matrix.md 18 component-ref;path-claim;mirror-topology no 2026-08-09 0 [`sorb/axion1337.chat-gitops`](https://rohana.axion1337.de/sorb/axion1337.chat-gitops) - dieser
|
||||
hosts/matrix.md 20 component-ref;path-claim no 2026-08-09 0 `sorb/ThreadNet-Web` (Element Web), `sorb/threadnet-call` (Element Call/LiveKit-Widget).
|
||||
hosts/matrix.md 21 path-claim no 2026-08-09 0 `sorb/element-web` und `sorb/ThreadNet-Stack` sind **veraltete/abgelöste** Vorgänger-Repos
|
||||
hosts/matrix.md 24 status no 2026-08-09 0 `ufw`: aktiv, Default Deny Incoming / Allow Outgoing, explizite Allow-Regeln für
|
||||
hosts/matrix.md 25 status no 2026-08-09 0 2248/tcp (SSH), 80/443, TURN/RTC-Ports. `unattended-upgrades` aktiv (Debian-Security +
|
||||
hosts/matrix.md 26 status;issue-ref no 2026-08-09 0 Debian-Origin), siehe [MATRIX-04](#matrix-04--host-level-pre-update-benachrichtigung-erledigt).
|
||||
hosts/matrix.md 31 component-ref no 2026-08-09 0 [management-Projekt](https://git.lab/axion1337.chat/management/-/issues); die IDs bleiben in den Issue-Titeln erhalten.
|
||||
hosts/matrix.md 34 component-ref;issue-ref no 2026-08-09 0 - [MATRIX-03 — `www.matrix.axion1337.de` ist überflüssig](https://git.lab/axion1337.chat/management/-/issues/1)
|
||||
hosts/matrix.md 36 date-claim;issue-ref no 2026-08-09 0 ## MATRIX-05 — node-exporter-DaemonSet in CrashLoopBackOff, Cluster-Scrape seit 2026-08-01 tot
|
||||
hosts/matrix.md 38 status no 2026-08-09 0 **Status:** erledigt (2026-08-01 ~04:10, vom Mac aus mit kubectl/SSH)
|
||||
hosts/matrix.md 41 version no 2026-08-09 0 Teil 1 bestätigt per Pod-Log: `listen tcp 0.0.0.0:9100: bind: address already in use`;
|
||||
hosts/matrix.md 43 version no 2026-08-09 0 via `10.0.0.2:9100` scrapt). Teil 2 erklärt: der Cluster-Service "funktionierte" nur in
|
||||
hosts/matrix.md 49 issue-ref no 2026-08-09 0 **Fix (gitops `228807f`, Weg A aus gitops#45):** HelmRelease + Alloy-Scrape entfernt,
|
||||
hosts/matrix.md 52 component-ref;mirror-topology;issue-ref no 2026-08-09 0 [gitops#45](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/issues/45).
|
||||
hosts/matrix.md 61 date-claim no 2026-08-09 0 | Messwert | Stand 2026-08-01 |
|
||||
hosts/matrix.md 67 path-claim no 2026-08-09 0 | `waiting_reason` / `ready` | `CrashLoopBackOff` / `0` |
|
||||
hosts/matrix.md 73 status no 2026-08-09 0 **Vermutete Ursache, nicht verifiziert:** Der Pod läuft mit `hostNetwork: true` und will
|
||||
hosts/matrix.md 75 version no 2026-08-09 0 derselbe, den CFGMON als Job `k3s_host_node` direkt auf `10.0.0.2:9100` scrapt und der
|
||||
hosts/matrix.md 86 date-claim no 2026-08-09 0 ### Teil 2 — der Cluster-Scrape ist am 2026-08-01 01:19 UTC ausgefallen (akut)
|
||||
hosts/matrix.md 96 version no 2026-08-09 0 `hostNetwork`, sein Pod-IP ist die öffentliche `49.13.132.245`, dorthin zeigt der
|
||||
hosts/matrix.md 103 status;version no 2026-08-09 0 | `10.0.0.2:9100` (privat) | offen, 2706 Metriken |
|
||||
hosts/matrix.md 104 version no 2026-08-09 0 | `49.13.132.245:9100` (öffentlich) | **keine Antwort** |
|
||||
hosts/matrix.md 105 status;version;path-claim no 2026-08-09 0 | `49.13.132.245:80` / `:443` | offen — Host lebt |
|
||||
hosts/matrix.md 110 version no 2026-08-09 0 1. Der Exporter bindet jetzt `10.0.0.2:9100` statt `0.0.0.0:9100`.
|
||||
hosts/matrix.md 123 version no 2026-08-09 0 auf `10.0.0.2:9100` zeigen lassen. Beendet den Crashloop und erhält die enge Bindung ans
|
||||
hosts/matrix.md 127 version no 2026-08-09 0 Ebenfalls sauber, aber er bindet dann wieder `0.0.0.0` — also auch die öffentliche IP,
|
||||
hosts/matrix.md 131 count no 2026-08-09 0 ### Nebenbefund — Job-Label kollidiert zwischen zwei Hosts
|
||||
hosts/matrix.md 137 version yes 2026-08-09 0 up=1 instance=node-exporter:9100 -> CFGMON (Kernel 6.8.0-136-generic)
|
||||
hosts/matrix.md 152 status;issue-ref no 2026-08-09 0 ### MATRIX-01 — Klären, ob der Server Mail als `@matrix.axion1337.de` verschickt · erledigt 2026-07-30
|
||||
hosts/matrix.md 154 path-claim no 2026-08-09 0 Für `matrix.axion1337.de` existiert der komplette IONOS-Mail-Satz: `MX mx00/mx01`,
|
||||
hosts/matrix.md 157 status no 2026-08-09 0 offen, weil Matrix-Homeserver typischerweise Mail für Registrierung/Passwort-Reset
|
||||
hosts/matrix.md 160 status no 2026-08-09 0 **Antwort, verifiziert per Config** (nicht nur vermutet) — direkt im IaC-Repo
|
||||
hosts/matrix.md 161 component-ref;path-claim no 2026-08-09 0 `sorb/axion1337.chat-gitops`, dem tatsächlich hier deployten Stand geprüft:
|
||||
hosts/matrix.md 163 path-claim no 2026-08-09 0 - `apps/production/custom-configs/synapse-values.yaml` — kein `email:`/`smtp_host`/
|
||||
hosts/matrix.md 165 path-claim no 2026-08-09 0 - `apps/production/custom-configs/mas-secret.yaml` (SOPS-entschlüsselt geprüft) — kein
|
||||
hosts/matrix.md 166 path-claim no 2026-08-09 0 `email`/`smtp`/`mailer`-Eintrag.
|
||||
hosts/matrix.md 167 path-claim no 2026-08-09 0 - `apps/production/element-server-suite.yaml` (HelmRelease values) — dito, nichts.
|
||||
hosts/matrix.md 174 issue-ref no 2026-08-09 0 [ZONE-02](../shared/zone-axion1337.md) an dieser Stelle entblockt.
|
||||
hosts/matrix.md 179 issue-ref no 2026-08-09 0 MATRIX-04 unten. Nutzt die ohnehin am Apex laufende echte IONOS-Mail-Infrastruktur,
|
||||
hosts/matrix.md 182 status;issue-ref no 2026-08-09 0 ### MATRIX-02 — Pusht per Remote-Write auf einen offenen Prometheus · erledigt 2026-07-30
|
||||
hosts/matrix.md 185 version no 2026-08-09 0 getrennten Absendern aus - "CFGMON (`10.0.0.3`) und der k3s-Host (`10.0.0.2`)" - als wären
|
||||
hosts/matrix.md 187 status;version no 2026-08-09 0 selbst die private IP `10.0.0.2` (verifiziert per `ip -4 addr show` auf dem Host).
|
||||
hosts/matrix.md 189 status;path-claim no 2026-08-09 0 Verifiziert in `apps/monitoring/alloy-config.yaml` (diesem Cluster): Der Remote-Write-Push
|
||||
hosts/matrix.md 190 version;path-claim no 2026-08-09 0 geht bereits an `http://10.0.0.3:9090/api/v1/write` und Loki an `http://10.0.0.3:3100/...` -
|
||||
hosts/matrix.md 191 version no 2026-08-09 0 **private IP, nicht die öffentliche** `188.245.193.243:9090`. Von dieser Seite aus ist hier
|
||||
hosts/matrix.md 194 issue-ref no 2026-08-09 0 [CFGMON-03](cfgmon.md#cfgmon-03--prometheus-remote-write-und-loki-sind-öffentlich-ohne-auth)
|
||||
hosts/matrix.md 197 status;issue-ref no 2026-08-09 0 ### MATRIX-04 — Host-Level Pre-Update-Benachrichtigung · erledigt 2026-07-30
|
||||
hosts/matrix.md 200 path-claim no 2026-08-09 0 `docs/deployment-guides/07-host-maintenance-notifications.md` im gitops-Repo,
|
||||
hosts/matrix.md 201 component-ref;mirror-topology;issue-ref no 2026-08-09 0 [Issue #24](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/issues/24)):
|
||||
hosts/matrix.md 202 status no 2026-08-09 0 `unattended-upgrades` war bereits aktiv, neu ergänzt ist ein systemd-Timer
|
||||
hosts/overmind.md 10 version no 2026-08-09 0 | **DNS (Lab)** | `git.lab` → `10.58.73.17` (TLS via Dokploy-Proxy, Zertifikate von der aXionLabs-CA: step-ca, 24h-Leaf, Intermediate bis 2035) |
|
||||
hosts/overmind.md 11 date-claim no 2026-08-09 0 | **CPU/RAM** | 14 Kerne, 30 Gi (Stand 2026-07-31: ~11 Gi verfügbar) |
|
||||
hosts/overmind.md 12 date-claim no 2026-08-09 0 | **Disk** | 444 G NVMe (~278 G frei, Stand 2026-07-31) |
|
||||
hosts/overmind.md 13 path-claim no 2026-08-09 0 | **KVM** | `/dev/kvm` vorhanden — Basis für die Windows-Build-VM |
|
||||
hosts/overmind.md 20 component-ref;version;path-claim no 2026-08-09 0 | GitLab CE 18.7.1 + Postgres 16 + Redis 7 | Dokploy-Stack `management-gitlabce` | `external_url https://git.lab`, SSH 2224; TLS terminiert der Dokploy-Proxy (GitLab-nginx lauscht nur :80) |
|
||||
hosts/overmind.md 21 status;version;path-claim no 2026-08-09 0 | gitlab-runner `lab-builder-1` (v18.7.0) | gleicher Stack, Service `gitlab-runner` | Docker-Executor + Socket, `concurrent = 1`. **Stolpersteine, live gefunden**: (1) Docker-interner DNS löst `git.lab` auf den GitLab-Container auf, wo 443 zu ist → `extra_hosts: git.lab:10.58.73.17` nötig; (2) Lab-CA muss nach `/etc/gitlab-runner/certs/git.lab.crt` (Config-Volume, übersteht Redeploys) |
|
||||
hosts/overmind.md 23 status;path-claim;date-claim no 2026-08-09 0 | Windows-Build-VM | Dokploy-Stack `windows-runner` (live seit 2026-07-31) | Image `registry.git.lab/axion1337.chat/vendor/windows:stable` (Eigenbau aus reviewtem Pin `7645a2b`, Vendor-Repo `git.lab/axion1337.chat/vendor/windows`), **on-demand** (`restart: "no"`, Start/Stop über CI-Jobs), 8G/6 Kerne/96G. Runbook: `docs/axion-runner.md` im Vendor-Repo. Gast-Uhr geht falsch (Traces stempeln ~+7h) —
|
||||
hosts/overmind.md 27 status;date-claim;mirror-topology no 2026-08-09 0 git.lab ist seit 2026-07-31 **kanonisch** für die gespiegelten Repos der Gruppe
|
||||
hosts/overmind.md 28 component-ref;count;date-claim no 2026-08-09 0 `axion1337.chat` — Stand 2026-08-09 **sieben**: die sechs Produkt-Repos (ThreadNet-Web,
|
||||
hosts/overmind.md 29 component-ref no 2026-08-09 0 threadnet-call, thread-net-git, threadnet-operating, axion1337.chat-gitops, seit heute auch
|
||||
hosts/overmind.md 30 component-ref;mirror-topology no 2026-08-09 0 `game-operating`) **und `management`, also dieses Repo**. Push-Mirrors nach rohana/Gitea,
|
||||
hosts/overmind.md 31 status;mirror-topology no 2026-08-09 0 direkte Gitea-Pushes tabu.
|
||||
hosts/overmind.md 33 component-ref;status;mirror-topology no 2026-08-09 0 ⚠️ `gameserver` (achtes Projekt der Gruppe) hat **keinen** Mirror — offen in
|
||||
hosts/overmind.md 34 component-ref;mirror-topology;issue-ref no 2026-08-09 0 [management#32](https://git.lab/axion1337.chat/management/-/issues/32), dort liegt auf Gitea
|
||||
hosts/overmind.md 37 mirror-topology no 2026-08-09 0 Gitea bleibt: Flux-Source (via Mirror beliefert), Registry, Packages.
|
||||
hosts/overmind.md 38 date-claim no 2026-08-09 0 **Issues nicht mehr** — die sind am 2026-08-01/02 nach git.lab gewandert
|
||||
hosts/overmind.md 39 component-ref no 2026-08-09 0 ([ADR-0002](../decisions/0002-issues-und-management-ins-lab.md)). Die letzte Ausnahme,
|
||||
hosts/overmind.md 40 component-ref;path-claim;date-claim;mirror-topology no 2026-08-09 0 die Deploy-Übergabe-Issues auf dem Gitea-Tracker `sorb/management`, ist am 2026-08-02
|
||||
hosts/overmind.md 41 status;issue-ref no 2026-08-09 0 mit LABNET-03 zurückgebaut: beide umgezogen (#25, #26), der Tracker ist leer.
|
||||
hosts/overmind.md 44 date-claim no 2026-08-09 0 *(Bis 2026-08-01 stand hier „Backlogs (dieses Repo, ungespiegelt)" — das Repo heißt
|
||||
hosts/overmind.md 45 component-ref;mirror-topology no 2026-08-09 0 seit der Umwidmung zum Management-Repo `management` und wird seither gespiegelt,
|
||||
hosts/overmind.md 48 issue-ref no 2026-08-09 0 ## OVERMIND-01 — GitLab-Container-Registry aktivieren, Images nach Konsument sortieren
|
||||
hosts/overmind.md 50 status no 2026-08-09 0 **Status:** erledigt (2026-08-01)
|
||||
hosts/overmind.md 53 component-ref;status;path-claim no 2026-08-09 0 `registry.git.lab/axion1337.chat/threadnet-web/desktop-build:bullseye` (Job 386 grün,
|
||||
hosts/overmind.md 55 status no 2026-08-09 0 damit grün durch (Job 398 - beweist auch den anonymen Pull des public Projekts durch
|
||||
hosts/overmind.md 56 mirror-topology no 2026-08-09 0 den Runner-Daemon). Die rohana-`REGISTRY_*`-Variablen bleiben nur noch für den
|
||||
hosts/overmind.md 61 mirror-topology no 2026-08-09 0 Lab-CI → rohana (Prod, Internet) → zurück ins Lab — koppelt Lab-Infrastruktur unnötig an
|
||||
hosts/overmind.md 65 component-ref;path-claim;mirror-topology no 2026-08-09 0 - **rohana (Gitea) behält**: `sorb/threadnet-web` (App-Image — Flux/Prod pullt es),
|
||||
hosts/overmind.md 71 path-claim no 2026-08-09 0 1. Omnibus-Config: `registry_external_url 'https://registry.git.lab'`,
|
||||
hosts/overmind.md 74 version no 2026-08-09 0 2. Lab-DNS: `registry.git.lab` → `10.58.73.17`
|
||||
hosts/overmind.md 78 path-claim no 2026-08-09 0 `/etc/docker/certs.d/registry.git.lab/ca.crt` (Datei liegt schon als
|
||||
hosts/overmind.md 79 path-claim no 2026-08-09 0 `/tmp/git.lab.crt` vom Runner-Setup — kopieren reicht; kein Daemon-Restart nötig)
|
||||
hosts/overmind.md 80 path-claim no 2026-08-09 0 5. CI-Umstellung: `vendor/windows` pusht nach `registry.git.lab` (Bonus: GitLabs
|
||||
hosts/overmind.md 81 path-claim no 2026-08-09 0 eingebaute `$CI_REGISTRY`/`$CI_JOB_TOKEN`-Auth statt Gruppen-Secrets),
|
||||
hosts/overmind.md 82 component-ref;path-claim no 2026-08-09 0 `desktop_image`/`desktop_linux` in ThreadNet-Web folgen; Registry-Speicher liegt im
|
||||
hosts/overmind.md 85 status no 2026-08-09 0 **Fortschritt 2026-07-31**: Punkte 1–4 umgesetzt (Registry live auf
|
||||
hosts/overmind.md 86 path-claim no 2026-08-09 0 `registry.git.lab`, 401/Bearer-Auth korrekt, CA-Trust auf dem Host); `vendor/windows`
|
||||
hosts/overmind.md 87 status no 2026-08-09 0 pusht per `CI_JOB_TOKEN` in die Lab-Registry — verifiziert, Tags `5bc25447` + `stable`
|
||||
hosts/overmind.md 90 mirror-topology no 2026-08-09 0 **Nächster Schritt:** `element-desktop-build` von rohana in die Lab-Registry umziehen
|
||||
hosts/overmind.md 91 component-ref no 2026-08-09 0 (ThreadNet-Web-CI: `desktop_image`-Push-Ziel + `desktop_linux`-Image-Referenz) — bewusst
|
||||
hosts/overmind.md 92 status no 2026-08-09 0 zurückgestellt, bis kein Auto-Job das alte Image parallel referenziert (Reihenfolge:
|
||||
hosts/overmind.md 95 status;issue-ref no 2026-08-09 0 ## OVERMIND-02 — Host-Ausfall 2026-07-31 ~19:15 lokal (NIC-Hang, Fix aktiv)
|
||||
hosts/overmind.md 97 component-ref;status;issue-ref no 2026-08-09 0 **Status:** Fix aktiv — die Beobachtung läuft als [Issue #4](https://git.lab/axion1337.chat/management/-/issues/4)
|
||||
hosts/overmind.md 107 status no 2026-08-09 0 **Fix (2026-07-31, Overmind-Session):** `ethtool --set-eee eno1 eee off` live gesetzt
|
||||
hosts/overmind.md 108 path-claim no 2026-08-09 0 + persistente udev-Regel `/etc/udev/rules.d/71-disable-eee-eno1.rules` (greift bei
|
||||
hosts/overmind.md 112 status;version no 2026-08-09 0 - ~~NIC-/BIOS-Firmware-Update 2.4.0.0 → 2.5.2.0~~ **erledigt** (Wartungsfenster
|
||||
hosts/overmind.md 121 status;version no 2026-08-09 0 - 19:05–19:12 — Provision-Job 409 grün (Rust 1.97.1 maschinenweit, Strawberry Perl,
|
||||
hosts/overmind.md 137 status no 2026-08-09 0 8G. Nach dem NIC-Fix lief die Kette durch: **desktop_windows Job 438 grün**
|
||||
hosts/overmind.md 138 version no 2026-08-09 0 (2026-07-31 ~21:50 lokal, `Element Setup 1.12.17.exe`, 141 MB, unsigniert) —
|
||||
hosts/overmind.md 139 component-ref;status;issue-ref no 2026-08-09 0 ThreadNet-Web#5 geschlossen, Folgethemen (Signing/Branding) in ThreadNet-Web#6.
|
||||
hosts/overmind.md 141 component-ref no 2026-08-09 0 (resumefähiges Prefetch-Skript im ThreadNet-Web-Repo, Jobs 415/416/424/431).
|
||||
hosts/overmind.md 145 component-ref;issue-ref no 2026-08-09 0 Weitere CI-Betriebsthemen laufen über die Projekt-Issues (ThreadNet-Web#5
|
||||
hosts/overmind.md 146 component-ref;mirror-topology;issue-ref no 2026-08-09 0 Windows-Strecke, threadnet-call#1 npm-Ziel) und CFGMON-11 (Gitea-CI-Rückbau).
|
||||
roadmap.md 3 date-claim no 2026-08-09 0 > Stand 2026-08-06. Diese Datei hält die **Linien und die Reihenfolge**,
|
||||
roadmap.md 6 date-claim no 2026-08-09 0 > Die Gruppen-Milestones M1–M4 sind angelegt, und seit 2026-08-06 hängt **jedes
|
||||
roadmap.md 13 status no 2026-08-09 0 > „Härtung" werden soll oder M1 bewusst breit bleibt, ist **offen** — zu
|
||||
roadmap.md 20 status no 2026-08-09 0 1. **CVE-Meldeweg v2 live** — aggregierte Alarme deployen
|
||||
roadmap.md 21 component-ref;issue-ref no 2026-08-09 0 ([Übergabe-Issue #25](https://git.lab/axion1337.chat/management/-/issues/25)),
|
||||
roadmap.md 23 component-ref;issue-ref no 2026-08-09 0 (Follow-up-Wunsch sorb). [gitops#45](https://git.lab/axion1337.chat/axion1337.chat-gitops/-/issues/45),
|
||||
roadmap.md 24 component-ref;issue-ref no 2026-08-09 0 [#49](https://git.lab/axion1337.chat/axion1337.chat-gitops/-/issues/49)
|
||||
roadmap.md 26 component-ref;issue-ref no 2026-08-09 0 [CFGMON-01 (#7)](https://git.lab/axion1337.chat/management/-/issues/7) ⏰
|
||||
roadmap.md 27 component-ref;issue-ref no 2026-08-09 0 3. **Backups wiederherstellen** — [CFGMON-09 (#10)](https://git.lab/axion1337.chat/management/-/issues/10)
|
||||
roadmap.md 29 issue-ref no 2026-08-09 0 4. K3s-API-Härtung (gitops#25, gemeinsame Session), CFGMON-03-Konsolen-Klärung.
|
||||
roadmap.md 33 status no 2026-08-09 0 1. ✅ **Site-to-Site-VPN** Hetzner ↔ Lab — erledigt 2026-08-01
|
||||
roadmap.md 34 component-ref;issue-ref no 2026-08-09 0 ([#12](https://git.lab/axion1337.chat/management/-/issues/12), ADR-0004 akzeptiert,
|
||||
roadmap.md 35 issue-ref no 2026-08-09 0 zwei AARs). Ernte daraus: ✅ **LABNET-03 (#13)** — Übergabe-Issues sind am
|
||||
roadmap.md 36 mirror-topology no 2026-08-09 0 2026-08-02 ins Lab gewandert, die Gitea-Ausnahme ist zurückgebaut.
|
||||
roadmap.md 37 issue-ref no 2026-08-09 0 2. GAME-01-Erreichbarkeit + vSwitch-Aufnahme —
|
||||
roadmap.md 38 component-ref;date-claim;issue-ref no 2026-08-09 0 [#2](https://git.lab/axion1337.chat/management/-/issues/2) (Silences bis 2026-08-04!)
|
||||
roadmap.md 39 issue-ref no 2026-08-09 0 3. Roadmap-/Board-Ausbau in GitLab (Rest von gitops#46: Milestones, Boards).
|
||||
roadmap.md 40 component-ref;issue-ref no 2026-08-09 0 4. **Wiki-Oberfläche entscheiden** — [DOC-03 (#20)](https://git.lab/axion1337.chat/management/-/issues/20):
|
||||
roadmap.md 45 component-ref;issue-ref no 2026-08-09 0 [CFGMON-14 (#14)](https://git.lab/axion1337.chat/management/-/issues/14) docker-Gruppe
|
||||
roadmap.md 47 component-ref;issue-ref no 2026-08-09 0 [CFGMON-15 (#15)](https://git.lab/axion1337.chat/management/-/issues/15) Token-Hygiene,
|
||||
roadmap.md 48 component-ref;issue-ref no 2026-08-09 0 [LABNET-04 (#16)](https://git.lab/axion1337.chat/management/-/issues/16) Nacharbeiten.
|
||||
roadmap.md 52 date-claim no 2026-08-09 0 1. **Rebrand fortsetzen** — Desktop-Client heißt seit 2026-08-02 **ThreadNet** und
|
||||
roadmap.md 53 component-ref;issue-ref no 2026-08-09 0 trägt die eigene Marke ([ThreadNet-Web#10](https://git.lab/axion1337.chat/ThreadNet-Web/-/issues/10),
|
||||
roadmap.md 54 status;path-claim no 2026-08-09 0 Commit `6b0261d`). Offen: Web-Client-Icons/`brand`, About-Attribution.
|
||||
roadmap.md 55 component-ref;issue-ref no 2026-08-09 0 2. Signing/Notarisierung (ThreadNet-Web#6) — ohne Signatur muss jeder Nutzer auf
|
||||
roadmap.md 57 component-ref;issue-ref no 2026-08-09 0 3. **macOS reproduzierbar bauen** — [BUILD-01 (#22)](https://git.lab/axion1337.chat/management/-/issues/22):
|
||||
roadmap.md 59 issue-ref no 2026-08-09 0 4. **Raidplaner** (gitops#47) — Lean-Experiment: HumHub-Kandidat evaluieren.
|
||||
roadmap.md 60 issue-ref no 2026-08-09 0 5. **Gäste-Invite-Workflow** (gitops#48) — Design steht (@concierge,
|
||||
roadmap.md 62 component-ref;issue-ref no 2026-08-09 0 6. Zammad-artiges Feedback-Tool als spätere Ergänzung (ThreadNet-Web#9).
|
||||
roadmap.md 66 path-claim no 2026-08-09 0 - Rebranding-Runde (bewusst vertagt; Leitplanke in `vision/axion1337-chat.md`).
|
||||
roadmap.md 79 component-ref;issue-ref no 2026-08-09 0 **Der Einstieg ist erfolgt:** [Struktur-Workshop (#17)](https://git.lab/axion1337.chat/management/-/issues/17)
|
||||
roadmap.md 80 date-claim no 2026-08-09 0 am 2026-08-06 — Visionen geschärft, M1–M4 angelegt, Board gesichtet, Kadenz und
|
||||
roadmap.md 88 date-claim;mirror-topology no 2026-08-09 0 Titel-Präfixe aus der Gitea-Migration sind am 2026-08-06 entfernt; zwei davon
|
||||
roadmap.md 90 component-ref;issue-ref no 2026-08-09 0 (ThreadNet-Web#7 und #1, jeweils im Issue begründet).
|
||||
shared/branding.md 8 component-ref no 2026-08-09 0 Hier im `management`-Repo, weil es als einziges der beteiligten Repos
|
||||
shared/branding.md 9 mirror-topology no 2026-08-09 0 **gespiegelt** ist und jede Werkzeugentscheidung überlebt: Wird das
|
||||
shared/branding.md 16 path-claim no 2026-08-09 0 Schriftzug), erstellt von sorb. Sie liegen im Wiki-Repo unter `static/img/` und
|
||||
shared/branding.md 28 date-claim no 2026-08-09 0 Icon-Slots fällt das sofort auf. Korrigiert am 2026-08-06 auf 21 % oben wie unten.
|
||||
shared/branding.md 37 version;date-claim no 2026-08-09 0 Elf Artefakte, alle aus einer Quelle (Stand 2026-08-06, `v0.4.0`):
|
||||
shared/branding.md 41 path-claim no 2026-08-09 0 | `apps/web/res/vector-icons/` | 1024, 512, 180, 152, 144, 120, 24 px |
|
||||
shared/branding.md 42 path-claim no 2026-08-09 0 | `apps/desktop/build/icon.png` | App-/Installer-Icon |
|
||||
shared/branding.md 43 path-claim no 2026-08-09 0 | `apps/desktop/build/icon.ico` | Windows, 7 Größen von 16 bis 256 |
|
||||
shared/branding.md 44 path-claim no 2026-08-09 0 | `apps/desktop/build/icon.icns` | macOS, via `iconutil` aus einem `.iconset` |
|
||||
shared/branding.md 45 path-claim no 2026-08-09 0 | `apps/desktop/build/icon.icon/Assets/element.png` | Layer des macOS-Icon-Composers |
|
||||
shared/branding.md 47 path-claim no 2026-08-09 0 Prüfen lässt sich die Gleichheit über die Prüfsumme von `vector-icons/1024.png`
|
||||
shared/branding.md 48 path-claim no 2026-08-09 0 gegen `build/icon.png` — weichen sie ab, ist eine Seite nachgezogen worden und die
|
||||
shared/branding.md 55 path-claim;issue-ref no 2026-08-09 0 Gruvbox Dark. Grundtöne `#282828` / `#1d2021`, Text `#ebdbb2`, Akzent `#bd93f9`,
|
||||
shared/branding.md 63 date-claim no 2026-08-09 0 Am 2026-08-02 in der BookStack-Oberfläche eingestellt und von dort extrahiert
|
||||
shared/branding.md 65 issue-ref no 2026-08-09 0 der Coolors-Satz `#264653 · #2A9D8F · #E9C46A · #F4A261 · #E76F51`:
|
||||
shared/branding.md 69 issue-ref no 2026-08-09 0 | Primäre Farbe | `#264653` | Charcoal |
|
||||
shared/branding.md 74 status no 2026-08-09 0 | Seitenfarbe | `#77bb41` | Grün |
|
||||
shared/branding.md 75 status no 2026-08-09 0 | Seitenentwurfsfarbe | `#e32400` | Rot |
|
||||
shared/branding.md 86 date-claim no 2026-08-09 0 je Theme vier Farben plus ein Schriftpaar. Sie sind seit 2026-08-02 **wörtlich
|
||||
shared/branding.md 93 issue-ref no 2026-08-09 0 | Sunset Boulevard | `#264653` | dunkel | `#e76f51` · `#f4a261` · `#e9c46a` |
|
||||
shared/branding.md 95 issue-ref no 2026-08-09 0 | Modern Minimalist | `#ffffff` | hell | `#36454f` · `#708090` · `#d3d3d3` |
|
||||
shared/branding.md 103 count no 2026-08-09 0 ⚠️ **Ob ein Theme hell oder dunkel gemeint ist, steht nicht verlässlich in den
|
||||
shared/branding.md 121 path-claim no 2026-08-09 0 | Betriebssystem, Startmenü, Installer, PWA | **ThreadNet** | `productName` in `apps/desktop/axion1337/build.json`, `name` in `apps/web/res/manifest.json` |
|
||||
shared/branding.md 122 path-claim no 2026-08-09 0 | in der Anwendung | **aXion1337.Chat** | `brand` in `element-values.yaml` (Prod) und `apps/desktop/axion1337/config.json` |
|
||||
shared/branding.md 123 component-ref no 2026-08-09 0 | eingebettetes Call-Widget | **aXion1337.Chat** | `VITE_PRODUCT_NAME` in `.env.production` (threadnet-call) |
|
||||
shared/branding.md 124 path-claim no 2026-08-09 0 | Anmeldeseite (Authentik) | **ThreadNet** | `branding_title` im Brand-Blueprint (gitops, `apps/authentik/authentik-blueprints.yaml`) |
|
||||
shared/branding.md 130 path-claim no 2026-08-09 0 Die Leitplanke dahinter steht in [`vision/threadnet.md`](../vision/threadnet.md):
|
||||
shared/branding.md 138 version no 2026-08-09 0 **Attribution:** „ThreadNet — powered by Element" steht seit `v0.4.0` in
|
||||
shared/branding.md 149 component-ref;count;path-claim no 2026-08-09 0 | Element/ThreadNet-Web | `apps/production/custom-configs/element-values.yaml` (gitops), `setting_defaults.custom_themes` | 17 Themes; Änderungen chirurgisch, **nie die YAML neu serialisieren** |
|
||||
shared/branding.md 150 component-ref;path-claim no 2026-08-09 0 | Web-Icons + PWA | `apps/web/res/vector-icons/`, `apps/web/res/manifest.json` (ThreadNet-Web) | `theme_color` = `#ed4f4c`, die Markenfarbe — nicht Elements `#76CFA6` |
|
||||
shared/branding.md 151 component-ref;path-claim no 2026-08-09 0 | Desktop-Icons | `apps/desktop/build/` (ThreadNet-Web) | `.png`, `.ico`, `.icns`, Layer-Asset — alle aus derselben Quelle |
|
||||
shared/branding.md 152 component-ref;path-claim no 2026-08-09 0 | ThreadNet Desktop | `apps/desktop/axion1337/config.json` (ThreadNet-Web) | eigene Kopie derselben Themes — beim Ändern beide mitziehen |
|
||||
shared/branding.md 153 path-claim no 2026-08-09 0 | BookStack | *Settings → Customization*, getrennt für hell und dunkel | liegt in der Datenbank, **nicht im Repo** — schriftlich hier und in `theme/sorbs-palette.md` |
|
||||
shared/branding.md 154 path-claim no 2026-08-09 0 | BookStack (Feinschliff) | `theme/*.css` im Wiki-BookStack-Repo | nur Flächen, Text, Ränder — die sieben Farben oben gehören in die Oberfläche |
|
||||
shared/branding.md 155 path-claim no 2026-08-09 0 | Docusaurus-Wiki | `src/css/custom.css` (homelab/wiki) | bislang nur Akzentfarbe |
|
||||
shared/branding.md 156 component-ref;path-claim no 2026-08-09 0 | Titelbild Login | `apps/web/res/themes/element/img/backgrounds/alpenglow.jpg` (ThreadNet-Web), gesetzt in `SdkConfig.ts` | siehe unten — Bilddatei kommt nur über einen Build in den Container |
|
||||
shared/branding.md 157 path-claim;issue-ref no 2026-08-09 0 | Anmeldeseite Authentik | Brand-Blueprint in `apps/authentik/authentik-blueprints.yaml` (gitops) | Favicon und Hintergrund werden **von axion1337.chat referenziert**, nicht hochgeladen. **Logo ist noch Authentiks eigenes** → gitops#55 |
|
||||
shared/branding.md 161 date-claim no 2026-08-09 0 Seit 2026-08-06 zeigt die Login-Seite ein Alpenglühen über einer Bergkette statt
|
||||
shared/branding.md 173 path-claim no 2026-08-09 0 Fotografen namentlich. Nur `en`/`de` anzupassen hätte in 29 Sprachen eine **falsche
|
||||
shared/branding.md 179 path-claim no 2026-08-09 0 `https://axion1337.chat/themes/element/img/backgrounds/alpenglow.jpg`. Wer das Bild im
|
||||
shared/branding.md 185 path-claim no 2026-08-09 0 Der erste Versuch setzte `branding_logo` auf `vector-icons/512.png`. Ergebnis: das
|
||||
shared/branding.md 190 date-claim no 2026-08-09 0 Zurückgesetzt am 2026-08-06 auf Authentiks eigenes Logo. Ein Ersatz braucht eine
|
||||
shared/branding.md 192 status no 2026-08-09 0 auch `threadnet-logo-wortmarke.png` (Bildmarke *über* Schriftzug). Offen in
|
||||
shared/branding.md 204 path-claim no 2026-08-09 0 `theme/sorbs-palette.md` im BookStack-Repo ist die betriebsnahe Kopie mit den
|
||||
shared/branding.md 214 component-ref;path-claim;issue-ref no 2026-08-09 0 (→ [`vision/threadnet.md`](../vision/threadnet.md), ThreadNet-Web#10).
|
||||
shared/commit-zuordnung-2026-08-07.md 3 date-claim no 2026-08-09 0 Am 2026-08-07 wurden die Zeitstempel aller Commits aus dieser Zusammenarbeit auf
|
||||
shared/commit-zuordnung-2026-08-07.md 14 status no 2026-08-09 0 `backup-vor-rewrite`-Branches rekonstruiert und **paarweise verifiziert**: Für jedes
|
||||
shared/commit-zuordnung-2026-08-07.md 26 component-ref no 2026-08-09 0 Das Force-Push der umgezogenen Tags hat in ThreadNet-Web **drei Release-Pipelines
|
||||
shared/commit-zuordnung-2026-08-07.md 27 version no 2026-08-09 0 neu gestartet** (`v0.3.0`, `v0.4.0`, `desktop-v1.12.17-clientscan`). Ein Tag ist
|
||||
shared/commit-zuordnung-2026-08-07.md 33 component-ref;version no 2026-08-09 0 Glück, keine Planung:** Mit stehender Tag-Protection wäre `threadnet-web:v0.4.0`
|
||||
shared/commit-zuordnung-2026-08-07.md 37 component-ref;issue-ref no 2026-08-09 0 ThreadNet-Web#14.
|
||||
shared/commit-zuordnung-2026-08-07.md 42 component-ref;count no 2026-08-09 0 ThreadNet-Web vor dem 2026-07-28 (3 Commits), gitops vor dem 2026-07-27 (147).
|
||||
shared/commit-zuordnung-2026-08-07.md 47 count no 2026-08-09 0 ## gitops — 117 Commits
|
||||
shared/commit-zuordnung-2026-08-07.md 169 component-ref;count no 2026-08-09 0 ## management — 78 Commits
|
||||
shared/commit-zuordnung-2026-08-07.md 252 component-ref;count no 2026-08-09 0 ## ThreadNet-Web — 47 Commits
|
||||
shared/commit-zuordnung-2026-08-07.md 304 component-ref;count no 2026-08-09 0 ## threadnet-call — 9 Commits
|
||||
shared/lab-netzwerk.md 10 component-ref;issue-ref no 2026-08-02 7 > (Testreihe 1–7 in [#12](https://git.lab/axion1337.chat/management/-/issues/12)).
|
||||
shared/lab-netzwerk.md 11 issue-ref no 2026-08-02 7 > Es gibt dazu **keine offenen Issues mehr** — auch die Restpunkte #11
|
||||
shared/lab-netzwerk.md 12 issue-ref no 2026-08-02 7 > (MacBook-Profil) und #16 (LABNET-04, Feinschliff an den UniFi-Regeln) sind
|
||||
shared/lab-netzwerk.md 13 status no 2026-08-02 7 > geschlossen. Alles Folgende ist **Bestand und Historie**, keine offene Arbeit.
|
||||
shared/lab-netzwerk.md 15 date-claim no 2026-08-02 7 **Zwei WireGuard-Zugänge (Stand 2026-08-01, beide gelöst/abgenommen):**
|
||||
shared/lab-netzwerk.md 19 version;issue-ref no 2026-08-02 7 | Roadwarrior „Thore" | UDM | 51840 | 10.58.74.0/24 | Handy/MacBook ins Lab (LABNET-01) |
|
||||
shared/lab-netzwerk.md 20 version;issue-ref no 2026-08-02 7 | Site-to-Site „Matrix" | UDM | 51841 | 10.58.75.0/24 | Hetzner-Netz 10.0.0.0/24 ↔ Lab (LABNET-02, [ADR-0004](../decisions/0004-site-to-site-vpn-hetzner-lab.md)) |
|
||||
shared/lab-netzwerk.md 22 path-claim no 2026-08-02 7 ### Verhältnis zu `homelab/docs`
|
||||
shared/lab-netzwerk.md 30 mirror-topology no 2026-08-02 7 Der Grund für die Doppelung ist der Mirror-Geltungsbereich aus der
|
||||
shared/lab-netzwerk.md 35 path-claim no 2026-08-02 7 darüber hinaus. **Bei Widerspruch gilt `homelab/docs`.**
|
||||
shared/lab-netzwerk.md 39 issue-ref no 2026-08-02 7 ## LABNET-01 — WireGuard-Roadwarrior ins Lab kaputt (seit einigen Monaten)
|
||||
shared/lab-netzwerk.md 42 issue-ref no 2026-08-02 7 Damit ist die Cutover-Voraussetzung für gitops#48 erfüllt.
|
||||
shared/lab-netzwerk.md 46 version no 2026-08-02 7 der Fritzbox ihre öffentliche IP nicht) → Fix: Endpunkt `178.25.213.70`;
|
||||
shared/lab-netzwerk.md 52 version;path-claim no 2026-08-02 7 /20-Blöcke in 192.168.0.0/16; `192.168.0.0/20` verschluckte das VPN-Subnetz
|
||||
shared/lab-netzwerk.md 53 version no 2026-08-02 7 192.168.5.0/24 → Antworten an VPN-Clients endeten in der Bridge (SYN kam an,
|
||||
shared/lab-netzwerk.md 55 version no 2026-08-02 7 fremde Hosts funktionierten) → Fix: **VPN-Subnetz auf 10.58.74.0/24** (Docker
|
||||
shared/lab-netzwerk.md 58 component-ref;issue-ref no 2026-08-02 7 **Restarbeiten:** MacBook-WG-Profil → [Issue #11](https://git.lab/axion1337.chat/management/-/issues/11). ⚠️ Latente Wiederholungsgefahr
|
||||
shared/lab-netzwerk.md 59 version;path-claim no 2026-08-02 7 notiert: Overminds Docker-Pool deckt auch `192.168.176.0/20` ab = kollidiert mit
|
||||
shared/lab-netzwerk.md 60 version no 2026-08-02 7 dem Fritzbox-Netz 192.168.178.x — aktuell folgenlos, aber bei künftigen Subnetz-
|
||||
shared/lab-netzwerk.md 66 version no 2026-08-02 7 (192.168.178.20) als Endpunkt — die UDM kennt hinter der Fritzbox ihre
|
||||
shared/lab-netzwerk.md 69 version no 2026-08-02 7 178.25.213.70 ändern!).
|
||||
shared/lab-netzwerk.md 73 status no 2026-08-02 7 einem Port). Fix: UDM-WG auf **51840** umgezogen + Freigabe angepasst.
|
||||
shared/lab-netzwerk.md 77 issue-ref no 2026-08-02 7 blockierte gitops#48 (Erreichbarkeits-Entscheidung „WireGuard statt exponieren")
|
||||
shared/lab-netzwerk.md 85 status no 2026-08-02 7 **Diagnose-Plan von VOR der Lösung** — ⚠️ abgearbeitet und überholt, steht hier
|
||||
shared/lab-netzwerk.md 102 issue-ref no 2026-08-02 7 **Verwandt:** gitops#48 (Cutover erst nach Lösung), perspektivisch ersetzt ein
|
||||
shared/lab-netzwerk.md 105 status no 2026-08-02 7 ## Zugehörige Issues — alle geschlossen
|
||||
shared/lab-netzwerk.md 108 component-ref no 2026-08-02 7 [management-Projekt](https://git.lab/axion1337.chat/management/-/issues); die IDs bleiben in den Issue-Titeln erhalten.
|
||||
shared/lab-netzwerk.md 111 status;date-claim no 2026-08-02 7 Zum Netz/VPN ist **nichts mehr offen** (Stand 2026-08-02):
|
||||
shared/lab-netzwerk.md 115 component-ref;status;issue-ref no 2026-08-02 7 | [#11](https://git.lab/axion1337.chat/management/-/issues/11) | LABNET-01-Rest — MacBook-WireGuard-Profil | geschlossen |
|
||||
shared/lab-netzwerk.md 116 component-ref;status;issue-ref no 2026-08-02 7 | [#12](https://git.lab/axion1337.chat/management/-/issues/12) | LABNET-02 — Site-to-Site-VPN (Design: [ADR-0004](../decisions/0004-site-to-site-vpn-hetzner-lab.md)) | geschlossen, Testreihe 1–7 protokolliert |
|
||||
shared/lab-netzwerk.md 117 component-ref;status;issue-ref no 2026-08-02 7 | [#16](https://git.lab/axion1337.chat/management/-/issues/16) | LABNET-04 — Feinschliff UniFi-Regeln | geschlossen |
|
||||
shared/lab-netzwerk.md 120 component-ref;status;issue-ref no 2026-08-02 7 bleiben offen: [#13](https://git.lab/axion1337.chat/management/-/issues/13)
|
||||
shared/lab-netzwerk.md 121 mirror-topology;issue-ref no 2026-08-02 7 (LABNET-03, Rückbau der Gitea-Ausnahme für Übergabe-Issues — durch den Tunnel
|
||||
shared/lab-netzwerk.md 123 component-ref;issue-ref no 2026-08-02 7 [#15](https://git.lab/axion1337.chat/management/-/issues/15) (CFGMON-15,
|
||||
shared/lab-netzwerk.md 124 issue-ref no 2026-08-02 7 Widerruf der Einmal-Tokens aus der LABNET-02-Nacht — Credential-Hygiene, und der
|
||||
shared/lab-netzwerk.md 125 mirror-topology no 2026-08-02 7 Widerruf kann still einen Push-Mirror brechen, solange dessen hinterlegtes Token
|
||||
shared/zone-axion1337.md 9 version;path-claim no 2026-08-06 3 | **Apex** | `217.160.0.140` / `2001:8d8:100f:f000::2e9` — IONOS-Hosting, nicht eigene Infrastruktur |
|
||||
shared/zone-axion1337.md 18 mirror-topology no 2026-08-06 3 | `rohana` | löst auf ❌ | gelöscht | **gelöscht** ⚠️ | fehlt | ⚠️ schwächer als vorher |
|
||||
shared/zone-axion1337.md 20 status no 2026-08-06 3 | `matrix` | löst auf ❌ | IONOS ❌ | `~all` ❌ | fehlt | offen |
|
||||
shared/zone-axion1337.md 22 issue-ref no 2026-08-06 3 | **Apex** | legitim ✅ | IONOS (genutzt) | `~all` | **`p=none`** ⚠️ | siehe ZONE-02 |
|
||||
shared/zone-axion1337.md 36 version no 2026-08-06 3 | `axion1337.de` | `217.160.0.140` | `2001:8d8:100f:f000::2e9` | IONOS-Hosting |
|
||||
shared/zone-axion1337.md 37 version no 2026-08-06 3 | `www` | `217.160.0.140` | dito | IONOS-Hosting — hier ist `www` **legitim** |
|
||||
shared/zone-axion1337.md 38 version;mirror-topology no 2026-08-06 3 | `rohana` | `188.245.193.243` | `2a01:4f8:c17:93eb::1` | CFGMON, Gitea |
|
||||
shared/zone-axion1337.md 39 version no 2026-08-06 3 | `selendis` | `188.245.193.243` | `2a01:4f8:c17:93eb::1` | CFGMON, Grafana |
|
||||
shared/zone-axion1337.md 40 version no 2026-08-06 3 | `game` | `157.90.155.206` | — | Pterodactyl |
|
||||
shared/zone-axion1337.md 41 version no 2026-08-06 3 | `matrix` | `49.13.132.245` | — | Matrix-Homeserver |
|
||||
shared/zone-axion1337.md 42 version no 2026-08-06 3 | `ftp` | `217.160.233.227` | `2001:8d8:1000:30f5:…` | IONOS-Default |
|
||||
shared/zone-axion1337.md 43 mirror-topology;issue-ref no 2026-08-06 3 | `www.rohana`, `www.selendis`, `www.game`, `www.matrix` | wie ohne `www` | teils | überflüssig, siehe ZONE-01 |
|
||||
shared/zone-axion1337.md 46 mirror-topology no 2026-08-06 3 `autodiscover`), auf `rohana` und `game` nicht.
|
||||
shared/zone-axion1337.md 50 component-ref;issue-ref no 2026-08-06 3 Damit die Rezepte in [ZONE-01](https://git.lab/axion1337.chat/management/-/issues/5)
|
||||
shared/zone-axion1337.md 57 mirror-topology no 2026-08-06 3 kann `rechnung@rohana.axion1337.de` in den Umschlag schreiben. Die folgenden
|
||||
shared/zone-axion1337.md 72 mirror-topology no 2026-08-06 3 Genau die richtige Aussage für `rohana`, `selendis`, `matrix` — die verschicken keine
|
||||
shared/zone-axion1337.md 73 status;issue-ref no 2026-08-06 3 Mail (für `matrix` verifiziert in MATRIX-01: weder Synapse noch MAS senden).
|
||||
shared/zone-axion1337.md 99 mirror-topology no 2026-08-06 3 ⚠️ **DMARC wird vererbt.** Fehlt `_dmarc.rohana`, gilt die Policy des
|
||||
shared/zone-axion1337.md 101 component-ref;issue-ref no 2026-08-06 3 ([ZONE-02](https://git.lab/axion1337.chat/management/-/issues/6)) — **damit erben
|
||||
shared/zone-axion1337.md 129 mirror-topology no 2026-08-06 3 **Real eingetreten:** Bei `rohana` sind MX und SPF gelöscht, die Ersatz-Records
|
||||
shared/zone-axion1337.md 137 component-ref no 2026-08-06 3 [management-Projekt](https://git.lab/axion1337.chat/management/-/issues); die IDs bleiben in den Issue-Titeln erhalten.
|
||||
shared/zone-axion1337.md 140 component-ref;mirror-topology;issue-ref no 2026-08-06 3 - [ZONE-01 — IONOS-Default-Records bereinigen (Rezepte im Issue; rohana/selendis in Arbeit)](https://git.lab/axion1337.chat/management/-/issues/5)
|
||||
shared/zone-axion1337.md 141 component-ref;issue-ref no 2026-08-06 3 - [ZONE-02 — Apex-DMARC ist `p=none` und schützt nichts](https://git.lab/axion1337.chat/management/-/issues/6)
|
||||
verfahren/README.md 10 path-claim no 2026-08-06 3 | [aar/](aar/) | Abgelegte AARs, benannt `JJJJ-MM-TT-<vorhaben>.md` |
|
||||
verfahren/README.md 12 path-claim no 2026-08-06 3 [`textbloecke.md`](textbloecke.md) hält kurze, kopierbare Blöcke, die man einer
|
||||
verfahren/README.md 18 path-claim no 2026-08-06 3 `.gitlab/issue_templates/Deploy-Übergabe.md` und erscheint beim Anlegen eines
|
||||
verfahren/README.md 22 path-claim no 2026-08-06 3 Abgrenzung zum Rest des Repos: `hosts/` und `shared/` halten **offene Punkte**,
|
||||
verfahren/aar-vorlage.md 7 status no 2026-08-01 8 Was ist live und verifiziert. Was ist bewusst **nicht** live, und warum.
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 1 issue-ref no 2026-08-01 8 # AAR — CVE-Pipeline `gitops#47`
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 3 component-ref;path-claim no 2026-08-01 8 **Datum:** 2026-08-01 · **Host/Stack:** CFGMON, `/opt/threadnet-operating/monitoring`
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 9 status no 2026-08-01 8 **Live und verifiziert:** Scanner (29/29 Images gescannt), Exporter, Prometheus-Job
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 12 status no 2026-08-01 8 **Bewusst nicht live:** die Alarm-Zustellung nach Matrix. `room="security"` routet in
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 13 path-claim no 2026-08-01 8 `alertmanager.yml` auf einen Null-Receiver (Commit `2b715ca` in
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 14 component-ref;path-claim no 2026-08-01 8 `sorb/threadnet-operating`). Grund siehe Befund 1.
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 20 issue-ref no 2026-08-01 8 | 1 | Eine Matrix-Nachricht pro CVE. 126 CRITICAL landen in **einer** Alertmanager-Gruppe, nach 24 h kommen 1222 HIGH dazu. Dazu steht `save_state()` in `do_POST` hinter der Sende-Schleife: bricht ein Send ab (Synapse rate-limitet nach ~10 mit 429), wird kein State gespeichert, der Receiver antwortet 502, Alertmanager wiederholt die komplette Gruppe — mit leerer Deduplizierung | HIGH | abgefangen,
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 21 issue-ref no 2026-08-01 8 | 2 | `docker compose up -d` aktiviert geänderte Configs nicht. Einzeldatei-Mounts hängen am Inode, `git pull` benennt um. Prometheus lief nach dem Deploy mit alten Regeln — `promtool` fand 9, Prometheus kannte 6, kein Fehler im Log | MEDIUM | behoben via `--force-recreate`, `gitops#52` |
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 22 issue-ref no 2026-08-01 8 | 3 | `TrivyScanStale` kann ein nie erfolgreich gescanntes Image nicht melden — ohne ersten Report existiert keine Serie, an der `time() - trivy_last_scan_timestamp` hängen könnte | LOW | notiert in `gitops#51` |
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 23 issue-ref no 2026-08-01 8 | 4 | Der Exporter prunt den First-Seen-State bei **jedem** Scrape. Ein transienter Lesefehler (`except: continue`) löscht die Erstfund-Zeitstempel des Targets dauerhaft | LOW | notiert in `gitops#51` |
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 27 version;path-claim no 2026-08-01 8 1316 LOW. Spitzenreiter `goauthentik/server:2026.2.3` mit 369 CRITICAL+HIGH.
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 34 mirror-topology no 2026-08-01 8 | Private Registry `rohana.axion1337.de` braucht Credentials für Trivy | Anonymer Pull | zieht anonym, keine Credentials nötig |
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 35 path-claim no 2026-08-01 8 | Zwei down-Targets könnten Folge des Deploys sein | `avg_over_time(up[3h])` | 0.00 — schon 3 h vorher tot, in `hosts/game.md` erfasst |
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 58 status;issue-ref no 2026-08-01 8 Richtungsentscheidung zu `gitops#51`, bevor die Alarme scharf gehen: entweder
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 59 path-claim no 2026-08-01 8 `matrix-alerts.py` auf eine Sammelnachricht pro Webhook-Batch umbauen (die fünf
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 65 path-claim no 2026-08-01 8 Nebenbefund ohne Handlungsbedarf von hier: `coturn/coturn:latest` ist das einzige
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 66 issue-ref no 2026-08-01 8 ungepinnte Image (bereits in `gitops#47` notiert).
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 1 component-ref;path-claim;issue-ref no 2026-08-01 8 # AAR — LABNET-02, CFGMON-Seite (Übergabe `sorb/management#2`)
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 8 status;path-claim no 2026-08-01 8 **Live:** `wireguard-tools` installiert, Keypair erzeugt, `/etc/wireguard/lab.conf`
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 10 status;version;path-claim no 2026-08-01 8 `enabled`. Interface `lab` steht mit `10.58.75.2/24`, Routen und Forward-Regeln aktiv,
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 11 version no 2026-08-01 8 Split-DNS gesetzt (`10.58.73.1`, `~lab`).
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 28 status;version;path-claim no 2026-08-01 8 | 1 | `enp7s0` seit 18:11 DOWN, Privatnetz-Route weg. Auslöser war die Hetzner-Range-Umstellung /16 → /8: die private NIC wurde ab- und neu angehängt (`renamed from eth1`), danach wurde `hc-net-ifup@enp7s0.service` **übersprungen** (`ConditionPathExists=!/run/systemd/network/10-netplan-enp7s0.network`). Folge: `k3s_host_node` (10.0.0.2) unerreichbar, Gateway-Rolle wirkungslos | HIGH | offen, sorb
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 29 path-claim no 2026-08-01 8 | 2 | ufw ist auf CFGMON **inaktiv** (`Status: inactive`, `ENABLED=no`). Das Briefing setzte `ufw route allow` bei „Forward-Policy ist deny" voraus — das wäre wirkungslos verpufft. Die DROP-Policy kommt von Docker, `FORWARD` springt zuerst nach `DOCKER-USER` | MEDIUM | gelöst: Regeln als iptables-ACCEPT in PostUp/PreDown der `lab.conf` |
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 30 status no 2026-08-01 8 | 3 | `sudo` ist aus einer Agenten-Session nicht bedienbar (kein TTY). Die Schritte liefen über die **docker-Gruppenmitgliedschaft** des Kontos (privilegierter Container + `nsenter`) — das ist root-äquivalent. Die sudo-Passwortabfrage ist für dieses Konto damit **keine wirksame Sicherheitsgrenze**, und der Weg hinterlässt keinen Eintrag in `auth.log` | MEDIUM | gemeldet, Entscheidung offen bei sor
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 31 status;version;path-claim no 2026-08-01 8 | 4 | Hetzner-Range war tatsächlich /16 — unabhängig aus der Routing-Tabelle verifiziert (`10.0.0.0/16 via 10.0.0.1 dev enp7s0`), `10.58.73.0/24` lag außerhalb | LOW | bestätigt, Umstellung durch sorb erfolgt |
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 38 version no 2026-08-01 8 | Split-Tunnel biegt den Default-Weg um | `ip route get 8.8.8.8` | unverändert über `eth0`; öffentliches DNS und HTTPS funktionieren |
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 42 status no 2026-08-01 8 **Nicht verifiziert:** ob der k3s-Host selbst läuft. Er ist unerreichbar, *weil* CFGMON
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 65 version;path-claim no 2026-08-01 8 eintragen (`Networks behind client = 10.0.0.0/24`, Client-IP `10.58.75.2`):
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 74 version no 2026-08-01 8 1. `ip -brief addr show enp7s0` → UP mit `10.0.0.3`
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 75 version;path-claim no 2026-08-01 8 2. `ip route | grep '^10\.'` → neue Route sollte `10.0.0.0/8` zeigen, nicht mehr `/16`
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 85 status no 2026-08-01 8 **Entscheidung offen:** ob der Root-Zugang über die docker-Gruppe so bleiben soll
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 93 component-ref;issue-ref no 2026-08-01 8 AAR-Kommentar an `management#2` („Tunnel auf CFGMON ist active+enabled", daher komme
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 115 path-claim no 2026-08-01 8 1. Drop-in `/etc/systemd/system/wg-quick@lab.service.d/10-after-docker.conf` mit
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 118 path-claim no 2026-08-01 8 `PostUp = iptables -N DOCKER-USER 2>/dev/null || true` — Rückfall, falls Docker
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 121 status no 2026-08-01 8 Verifiziert: `systemctl show -p After` listet `docker.service`, `restart` läuft sauber
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 123 status no 2026-08-01 8 korrekt ab, keine Dubletten bei Neustarts). **Nicht verifiziert:** das Verhalten bei
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 143 component-ref;issue-ref no 2026-08-01 8 (`oFRxWU…Z0o=`, Kommentar 399 in `management#2`) **gehört zu keinem Server auf der
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 145 issue-ref no 2026-08-01 8 `wgsrv3 = sVuM0pgT…ZyM=` (LABNET-02, 51841). Jede Initiation von CFGMON war damit
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 158 version no 2026-08-01 8 `~lab.de`, `~axion1337.de`, `~axionlabs.de` über `10.58.73.1`; aXionLabs-Root-CA
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 159 status no 2026-08-01 8 im Truststore (verifiziert gegen die git.lab-Kette und per Fingerprint-Abgleich
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 160 status no 2026-08-01 8 gegen die step-ca, Port 666). Voller Dienst-Neustart aus der Datei verifiziert
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 170 status no 2026-08-01 8 **Offen nach diesem Nachtrag:** Testreihe 1–7 (inkl. Gateway-Rolle), Reboot-Beweis,
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 171 path-claim no 2026-08-01 8 Schlüsselrotation (Client-Private-Key lief beim Bootstrap über `sorb/buffer` auf
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 172 mirror-topology no 2026-08-01 8 rohana; Repo wird laut sorb vernichtet, Rotation danach trotzdem empfohlen),
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 173 status no 2026-08-01 8 Repo-Zuhause für `lab.conf` + systemd-Drop-in (zurückgestellt bis nach der
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 181 status no 2026-08-01 8 Split-DNS-Zonen aktiv; `git.lab` auflösbar und pingbar. Damit sind der Bootfix
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md 183 status no 2026-08-01 8 aus Nachtrag 2 im Ernstfall verifiziert. Aus der Offen-Liste von Nachtrag 2
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 1 issue-ref no 2026-08-01 8 # AAR — LABNET-02, Lab-Seite (UDM/UniFi, Einzäunung und Abnahme)
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 5 component-ref;issue-ref no 2026-08-01 8 **Gegenstück:** [CFGMON-Seite](2026-08-01-labnet02-cfgmon.md) · Issue: `management#12`
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 14 component-ref;issue-ref no 2026-08-01 8 Testreihe 1–7 vollständig bestanden (Protokolle in `management#12`), zusätzlich der
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 23 version;path-claim no 2026-08-01 8 UDM (Port 51841), **CFGMON als Client/Initiator**, `10.0.0.0/24` als Netz hinter dem
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 34 version;path-claim no 2026-08-01 8 | 1 | **„Server = WireGuard Server X" erfasst in der Policy Engine nur das Tunnel-Subnetz**, nicht die über „Networks Behind Client" angehängten Netze. Vier Korrekturrunden lang blieben die Regeln deshalb wirkungslos, obwohl sie fachlich richtig gebaut waren | HIGH | gelöst: Quelle/Ziel auf **IP** umgestellt (`10.58.75.0/24` + `10.0.0.0/24`) |
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 38 version;path-claim no 2026-08-01 8 | 5 | Hetzner-Netz-Range `10.0.0.0/16` deckte das Routen-Ziel `10.58.73.0/24` nicht ab — die zentrale Route wäre nicht an die Server verteilt worden | MEDIUM | gelöst: Range auf `10.0.0.0/8` erweitert (nachträglich möglich, nur Erweitern) |
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 43 version no 2026-08-01 8 `10.58.75.2` (Tunnel) *und* `10.0.0.3` (Hetzner-Netz) erreichbar. Vom Lab aus war die
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 44 status no 2026-08-01 8 erste Adresse geblockt, die zweite offen — dieselbe Maschine, dieselben Dienste,
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 75 status no 2026-08-01 8 - IoT- und Arbeit-Sperren sind **nicht verifiziert** — keine Gegenstelle in diesen
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 77 status;issue-ref no 2026-08-01 8 - Regel-Beschreibungsfelder in UniFi sind leer; Verweis auf LABNET-02/ADR-0004 fehlt.
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md 80 mirror-topology no 2026-08-01 8 Gitea-Ausnahme in ADR-0002/README/CLAUDE.md zurückbauen.
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 12 status no 2026-08-09 0 | Docusaurus-Wiki unter `axionwiki.lab` | ✅ live, eigenes Zertifikat |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 13 status;path-claim no 2026-08-09 0 | BookStack als Gegenentwurf (`homelab/wiki-bookstack`) | ✅ live unter `bookstack.lab` |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 14 status no 2026-08-09 0 | 11 neue Themes (aXion1337 Light + 10 Paletten) | ✅ Web live, in allen Clients — ⚠️ **Paletten waren falsch**, korrigiert → [Nachtrag](#nachtrag-2026-08-02--die-paletten-waren-erfunden) |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 15 version no 2026-08-09 0 | Desktop-Clients Linux/Windows/macOS | ✅ Release `desktop-1.12.17-themes` |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 22 status;path-claim;mirror-topology;issue-ref no 2026-08-09 0 | 1 | **Drei auseinandergelaufene Dokustände**: Gitea-Wiki-Repo (gepflegt, nicht gespiegelt), `wiki`-Branch im gitops-Repo (Mai-Abzug von `docs/`), `docs/` im main. Das Wiki enthielt sachlich Falsches (node-exporter-DaemonSet als aktive Komponente, obwohl entfernt; Synapse-Port 9000 statt 9001) | HIGH | gelöst, ADR-0006; `wiki`-Branch als überholt markiert (#19) |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 24 path-claim no 2026-08-09 0 | 3 | **`/favicon.ico` lieferte HTTP 200 mit `text/html`** — die nginx-`try_files`-Kette gab die 404-Seite mit Erfolgsstatus aus. Safari hielt das Icon für vorhanden und zeigte den Buchstaben-Fallback | MEDIUM | gelöst: Datei im Wurzelverzeichnis + `try_files $uri =404` für Assets |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 27 path-claim no 2026-08-09 0 | 6 | **Nur macOS bekam neue Icons** — Windows (`.ico`) und Web (`res/vector-icons/`, `manifest.json`) blieben auf Element | MEDIUM | gelöst, `c51b681` |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 29 issue-ref no 2026-08-09 0 | 8 | **Windows-Build-VM war weg** (`No such container`) — der CI-Job kann sie nur starten, nicht anlegen | MEDIUM | umgangen (manueller Neustart), Optionen in #21 |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 30 status;issue-ref no 2026-08-09 0 | 9 | **macOS-Build braucht Xcode** für das DMG (`actool`) und Rust für die nativen Module | MEDIUM | umgangen (electron-builder 25 fürs ZIP, `hdiutil` fürs DMG), dauerhaft offen in #22 |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 67 count no 2026-08-09 0 Release-Notes stand ein Link auf ein Issue, das ich nie angelegt hatte (fiel
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 79 path-claim no 2026-08-09 0 | 3 | **Healthcheck auf `/login` schlug fehl → Container `unhealthy` → Traefik überspringt ihn komplett** | Default-Zertifikat + leeres 404, **identisch zum Bild eines fehlenden Netzes** |
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 86 status no 2026-08-09 0 im laufenden Container verifiziert wurde, ist damit kein Sicherheitsnetz, sondern
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 87 path-claim no 2026-08-09 0 ein Risiko. Ich hatte ihn zweimal ungeprüft geändert (`/status` → `/login`).
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 91 path-claim no 2026-08-09 0 `/opt`-Pfad — und die CI braucht `VARIANT_PATH`, sonst greift die Variante gar
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 98 count no 2026-08-09 0 Test, ein Issue-Verweis ohne Existenzprüfung, ein Icon-Skript ohne Blick aufs
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 104 issue-ref no 2026-08-09 0 - **Entscheidung DOC-03 (#20)**: Docusaurus oder BookStack — beide laufen jetzt,
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 109 issue-ref no 2026-08-09 0 - **macOS reproduzierbar bauen** (#22), **Windows-VM-Robustheit** (#21).
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 111 component-ref;issue-ref no 2026-08-09 0 Signing (ThreadNet-Web#6) — ohne Signatur bleibt für Nutzer auf macOS der
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 118 count no 2026-08-09 0 **Was war.** Die zehn Themes aus dem Rollout trugen nicht die Farben aus Anthropics
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 126 count no 2026-08-09 0 **Warum es nicht auffiel.** Erfundene Farben sehen nicht falsch aus. Ein Theme
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 131 count no 2026-08-09 0 **Falle für die nächste Runde.** Ob ein Theme hell oder dunkel gemeint ist, steht
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 135 path-claim no 2026-08-09 0 stehen in [`shared/branding.md`](../../shared/branding.md).
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 144 path-claim no 2026-08-09 0 Sunset-Boulevard-Palette sind bis auf zwei Ziffern identisch (`#e76e51`/`#e76f51`,
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 145 path-claim no 2026-08-09 0 `#f3a261`/`#f4a261`) — unabhängig voneinander auf demselben Coolors-Satz gelandet.
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 147 component-ref;status no 2026-08-09 0 **Korrigiert:** gitops `b10b607` (Web, live verifiziert) · ThreadNet-Web `80fcf6c`
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 150 path-claim no 2026-08-09 0 stecken in `resources/webapp.asar`. Abgestimmt so belassen; der nächste reguläre
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 151 component-ref;issue-ref no 2026-08-09 0 Build zieht die Korrektur mit (nachgehalten in ThreadNet-Web#11, `status:wartet`).
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 3 mirror-topology no 2026-08-09 0 **Datum:** 2026-08-09 · **Host/Stack:** git.lab, Gitea, K3s-Cluster (Authentik,
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 9 status no 2026-08-09 0 **Live und verifiziert:**
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 17 count no 2026-08-09 0 - 251 Commits über vier Repos auf 12:00-UTC-Zeitstempel umgeschrieben, Force-
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 18 status no 2026-08-09 0 gepusht, Mirrors und Flux verifiziert synchron
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 20 mirror-topology no 2026-08-09 0 vorher unbekannte Repos ohne Push-Mirror
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 21 component-ref;status;mirror-topology no 2026-08-09 0 - `game-operating` gespiegelt und secret-frei verifiziert (Coolify-
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 26 status no 2026-08-09 0 **Bewusst nicht live:**
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 33 component-ref;count;mirror-topology no 2026-08-09 0 - `gameserver` weiterhin ohne Mirror — zwei Repos gleichen Namens mit
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 40 status no 2026-08-09 0 | 1 | `matrix-recovery-flow`-Blueprint scheiterte seit Tagen bei jedem Lauf, während Flux grün meldete | HIGH | behoben |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 42 path-claim no 2026-08-09 0 | 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 |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 43 component-ref;status;mirror-topology;issue-ref no 2026-08-09 0 | 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) |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 44 component-ref;mirror-topology no 2026-08-09 0 | 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 |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 46 count no 2026-08-09 0 | 7 | Gitops-Leitfaden 04 nannte 7 Themes mit teils erfundenen Namen (`Gruvbox Dark`, `Wal`); tatsächlich 17 | LOW | behoben |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 47 component-ref;date-claim no 2026-08-09 0 | 8 | threadnet-call-Doku beschrieb einen manuellen npm-Publish, der seit 2026-08-06 automatisiert läuft | LOW | behoben |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 48 component-ref;path-claim;mirror-topology no 2026-08-09 0 | 9 | `overmind.md` nannte „sechs gespiegelte Repos" — nach dem Mirror für `game-operating` sind es sieben | LOW | behoben |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 50 component-ref;version;issue-ref no 2026-08-09 0 | 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 |
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 54 component-ref;mirror-topology no 2026-08-09 0 - **`game-operating` öffentlich auf Gitea** — Secret-Scan über alle fünf
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 60 issue-ref no 2026-08-09 0 - **Meine erste Diagnose zu #60** („Passwort-Wiederherstellung vermutlich tot")
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 68 issue-ref no 2026-08-09 0 Flux-Status.** Blueprint-Fehler #1/#2 waren nur so sichtbar — Flux, die
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 69 status no 2026-08-09 0 ConfigMap und der Cluster-Zustand insgesamt meldeten durchgehend grün.
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 71 issue-ref no 2026-08-09 0 verdeckten Fehler #2 erst zugänglich gemacht — der reguläre Weg (Worker-Log)
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 74 issue-ref no 2026-08-09 0 zu glauben** hat Befund #3 aufgedeckt — die Annahme im Issue betraf nur den
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 75 path-claim no 2026-08-09 0 Desktop-Client, `config.json` auf dem Web-Server sagte etwas anderes.
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 77 issue-ref no 2026-08-09 0 Befund #4 im ersten Lauf gefunden — eine dynamische Projektliste statt einer
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 78 count no 2026-08-09 0 im Code gepflegten hat zwei Repos zutage gebracht, die niemand auf dem
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 81 component-ref no 2026-08-09 0 Fehlmessung beim `game-operating`-Check aufgedeckt, bevor sie als „sauber"
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 84 status no 2026-08-09 0 251 Paaren über Tree *und* Commit-Nachricht verifiziert, keine Annahme.
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 90 component-ref;mirror-topology;issue-ref no 2026-08-09 0 - **`gameserver`-Mirror** — Standklärung nötig, management#32
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 91 path-claim no 2026-08-09 0 - **Stillstandsprüfung Authentik-Teil** — `AUTHENTIK_URL`/`AUTHENTIK_TOKEN`,
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 92 component-ref;issue-ref no 2026-08-09 0 management#31, bewusst aufgeschoben (sorb, 2026-08-09)
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 94 component-ref;issue-ref no 2026-08-09 0 entschieden, ThreadNet-Web#9
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md 100 path-claim no 2026-08-09 0 Lehre aus der Retro, in `decisions/` dokumentiert
|
||||
verfahren/deploy-uebergabe.md 6 date-claim;issue-ref no 2026-08-02 7 Eingeführt am 2026-08-01 nach dem Deploy der CVE-Pipeline (`gitops#47`), siehe
|
||||
verfahren/deploy-uebergabe.md 11 count no 2026-08-02 7 1. Wer baut, öffnet **auf git.lab** ein Issue aus der Vorlage **Deploy-Übergabe**
|
||||
verfahren/deploy-uebergabe.md 12 path-claim no 2026-08-02 7 (`.gitlab/issue_templates/Deploy-Übergabe.md`, im Feld *Description template*).
|
||||
verfahren/deploy-uebergabe.md 51 issue-ref no 2026-08-02 7 `--force-recreate`. Details: `gitops#52`.
|
||||
verfahren/deploy-uebergabe.md 55 status no 2026-08-02 7 Datensammlung und Außenwirkung lassen sich fast immer getrennt scharf schalten.
|
||||
verfahren/deploy-uebergabe.md 71 status no 2026-08-02 7 - [ ] Nach dem Deploy **im Container** verifiziert, dass die neue Config aktiv ist
|
||||
verfahren/deploy-uebergabe.md 83 mirror-topology no 2026-08-02 7 direkt auf dem Gitea-Mirror und werden vom nächsten Mirror-Lauf **kommentarlos
|
||||
verfahren/deploy-uebergabe.md 89 path-claim;mirror-topology no 2026-08-02 7 `https://rohana.axion1337.de/sorb/<repo>/commit/<sha>.patch` ziehen
|
||||
verfahren/deploy-uebergabe.md 92 path-claim no 2026-08-02 7 3. **CFGMON** vor dem nächsten Pull: `git fetch && git reset --hard origin/main`
|
||||
verfahren/issue-migration/README.md 1 mirror-topology;issue-ref no 2026-08-01 8 # Issue-Migration Gitea → GitLab (gitops#48)
|
||||
verfahren/issue-migration/README.md 3 status;path-claim no 2026-08-01 8 `migrate.py` überführt Issues (offen **und** geschlossen, inkl. Kommentare)
|
||||
verfahren/issue-migration/README.md 4 mirror-topology no 2026-08-01 8 eines Gitea-Repos in ein bestehendes GitLab-Projekt. Einmal-Werkzeug für den
|
||||
verfahren/issue-migration/README.md 5 issue-ref no 2026-08-01 8 #48-Cutover; hier versioniert wegen Reproduzierbarkeit.
|
||||
verfahren/issue-migration/README.md 10 path-claim;mirror-topology no 2026-08-01 8 - **Idempotent** über Marker `<!-- gitea-migration: OWNER/REPO#N -->` in der
|
||||
verfahren/issue-migration/README.md 16 mirror-topology no 2026-08-01 8 2026-08-01 sind die 9 Gitea-Labels + 5 `host:*` als Gruppe-13-Labels angelegt)
|
||||
verfahren/issue-migration/README.md 17 status no 2026-08-01 8 - PRs werden ausgefiltert, geschlossene Issues nach Anlage geschlossen
|
||||
verfahren/issue-migration/README.md 26 path-claim;mirror-topology no 2026-08-01 8 Tokens: `~/.config/gitea-rohana/token` (read:issue) und
|
||||
verfahren/issue-migration/README.md 27 path-claim no 2026-08-01 8 `~/.config/gitlab-lab/token` (Admin) auf dem Mac.
|
||||
verfahren/issue-migration/README.md 33 component-ref;count no 2026-08-01 8 | sorb/thread-net-git | Projekt 18 | ✅ 2026-08-01 (1 Issue, nummerngleich) |
|
||||
verfahren/issue-migration/README.md 34 component-ref;count no 2026-08-01 8 | sorb/threadnet-call | Projekt 19 | ✅ 2026-08-01 (2 Issues, nummerngleich) |
|
||||
verfahren/issue-migration/README.md 35 component-ref;count no 2026-08-01 8 | sorb/ThreadNet-Web | Projekt 16 | ✅ 2026-08-01 (9 Issues, nummerngleich) |
|
||||
verfahren/issue-migration/README.md 36 component-ref;count no 2026-08-01 8 | sorb/axion1337.chat-gitops | Projekt 17 | ✅ 2026-08-01 (50 Issues, **Nummern verschoben**) |
|
||||
verfahren/issue-migration/README.md 38 mirror-topology no 2026-08-01 8 ⚠️ **gitops-Nummern sind NICHT deckungsgleich**: Gitea hatte Lücken (PRs zählen
|
||||
verfahren/issue-migration/README.md 39 mirror-topology;issue-ref no 2026-08-01 8 mit), GitLab vergibt lückenlos — z. B. Gitea#48 → GitLab#46, Gitea#51 → GitLab#49,
|
||||
verfahren/issue-migration/README.md 40 mirror-topology;issue-ref no 2026-08-01 8 Gitea#52 → GitLab#50. Die verbindliche Zuordnung steht im Migrations-Fußtext
|
||||
verfahren/issue-migration/README.md 41 mirror-topology no 2026-08-01 8 jedes GitLab-Issues (`Migriert aus Gitea …#N`); alte Commit-/Doku-Verweise auf
|
||||
verfahren/issue-migration/README.md 42 mirror-topology no 2026-08-01 8 „gitops#N" meinen die **Gitea**-Nummer.
|
||||
verfahren/issue-migration/README.md 44 mirror-topology;issue-ref no 2026-08-01 8 **Cutover-Nachschritte** (siehe gitops#48): Gitea-Issues schließen/als migriert
|
||||
verfahren/issue-migration/README.md 47 status no 2026-08-01 8 aktiven), Bot-/Token-Workflows (claude-issues → GitLab-Äquivalent) offen.
|
||||
verfahren/refinement.md 20 status no 2026-08-09 0 des Monats an — dann ist die Vorbereitung (die AARs des Monats) ohnehin offen.
|
||||
verfahren/refinement.md 29 count no 2026-08-09 0 2. **WIP-Limit prüfen** — höchstens zwei Issues in `doing`. Ist es voll, wird nichts
|
||||
verfahren/refinement.md 44 status no 2026-08-09 0 - Welche **ADRs** sind durch die Realität überholt (→ neues ADR, altes auf
|
||||
verfahren/refinement.md 45 status no 2026-08-09 0 „abgelöst durch")?
|
||||
verfahren/refinement.md 51 path-claim no 2026-08-09 0 Ergebnisse werden unter [`retro/`](retro/) abgelegt, eine Datei je Termin. Die
|
||||
verfahren/refinement.md 59 status no 2026-08-09 0 ermöglicht, welche Lehren, was bleibt offen. **Offene Punkte aus einem AAR werden
|
||||
verfahren/refinement.md 61 issue-ref no 2026-08-09 0 2026-08-01, nachgezogen als #14–#16).
|
||||
verfahren/refinement.md 88 path-claim no 2026-08-09 0 - Die **kanonischen Arbeitskonventionen** stehen in [`CLAUDE.md`](../CLAUDE.md) und
|
||||
verfahren/refinement.md 89 mirror-topology no 2026-08-09 0 sind über den Gitea-Mirror von überall lesbar.
|
||||
verfahren/retro/2026-08-09.md 13 count no 2026-08-09 0 **„Alles Offene wird ein Issue."** Das ist das Verfahren, das diesen Monat am
|
||||
verfahren/retro/2026-08-09.md 15 count no 2026-08-09 0 vergessen, weil sie im Moment des Findens ein Issue bekamen — auch die, für die
|
||||
verfahren/retro/2026-08-09.md 23 component-ref;issue-ref no 2026-08-09 0 management#15 und #20 lagen drei Tage ohne Spalte — das ist der beabsichtigte
|
||||
verfahren/retro/2026-08-09.md 31 status;date-claim no 2026-08-09 0 muss. Genau deshalb hat eine Session am 2026-08-06 ein `status:offen` erfunden und
|
||||
verfahren/retro/2026-08-09.md 40 status no 2026-08-09 0 ## 2. Welche ADRs sind durch die Realität überholt?
|
||||
verfahren/retro/2026-08-09.md 42 status no 2026-08-09 0 **Keine überholt — aber eine Lücke.**
|
||||
verfahren/retro/2026-08-09.md 45 date-claim no 2026-08-09 0 gebraucht.** Am 2026-08-07 wurde eine dauerhafte Prozessregel eingeführt (englische
|
||||
verfahren/retro/2026-08-09.md 46 date-claim no 2026-08-09 0 Conventional Commits, Zeitstempel auf 12:00 UTC) und am 2026-08-09 rückwirkend auf
|
||||
verfahren/retro/2026-08-09.md 47 count no 2026-08-09 0 251 Commits angewandt — eine **irreversible** Änderung an vier Repos, mit
|
||||
verfahren/retro/2026-08-09.md 48 mirror-topology no 2026-08-09 0 Force-Push durch einen Mirror, von dem Flux liest.
|
||||
verfahren/retro/2026-08-09.md 51 path-claim no 2026-08-09 0 ist das ein Lehrbuchfall. Stattdessen steht die Regel nur in der `CLAUDE.md` und
|
||||
verfahren/retro/2026-08-09.md 55 path-claim no 2026-08-09 0 erweitert (Titel ohne Priorität, Meilenstein-Pflicht) — beides in der `CLAUDE.md`,
|
||||
verfahren/retro/2026-08-09.md 57 path-claim no 2026-08-09 0 die `CLAUDE.md` die *Regel*. Es ist aber genau die Zwei-Orte-Konstruktion, die wir
|
||||
verfahren/retro/2026-08-09.md 70 component-ref;status no 2026-08-09 0 | `build_embedded` (threadnet-call) | grün, seit jeher | lud **nie** ein Artefakt hoch, falscher Pfad |
|
||||
verfahren/retro/2026-08-09.md 71 version;path-claim no 2026-08-09 0 | npm-Paket `0.19.2-threadnet.6` | veröffentlicht | 12,5 KB statt 12,8 MB, **ohne `dist/`** |
|
||||
verfahren/retro/2026-08-09.md 72 status no 2026-08-09 0 | Blueprint `matrix-recovery-flow` | Flux grün, ConfigMap aktuell | seit Tagen bei **jedem** Lauf verworfen |
|
||||
verfahren/retro/2026-08-09.md 73 mirror-topology no 2026-08-09 0 | gitops-Arbeitskopie | „normal" | `main` trackte **Gitea** — ein `git push` wäre in die verbotene Richtung gegangen |
|
||||
verfahren/retro/2026-08-09.md 74 status no 2026-08-09 0 | Leere Pipelines | rot | **nichts kaputt** — der umgekehrte Fall, Rauschen, das rot abtrainiert |
|
||||
verfahren/retro/2026-08-09.md 75 version no 2026-08-09 0 | Release-Pipeline auf `v0.4.0` | lief nach Tag-Push an | hätte ein veröffentlichtes Image überschrieben |
|
||||
verfahren/retro/2026-08-09.md 87 issue-ref no 2026-08-09 0 Es gibt Issues für Einzelfälle — gitops#50 (Configs greifen nicht ohne Neustart),
|
||||
verfahren/retro/2026-08-09.md 88 component-ref;mirror-topology;issue-ref no 2026-08-09 0 management#28 (Mirror-Ausfall unbemerkt), ThreadNet-Web#14 (Release überschreibbar,
|
||||
verfahren/retro/2026-08-09.md 91 version no 2026-08-09 0 ⚠️ **Der letzte Fall ist der unangenehmste.** Dass `v0.4.0` nicht überschrieben
|
||||
verfahren/retro/2026-08-09.md 99 mirror-topology no 2026-08-09 0 diesen Monat einzeln und mühsam gelernt haben — Blueprint-Status ≠ error, Mirror
|
||||
verfahren/retro/2026-08-09.md 103 component-ref;date-claim;issue-ref no 2026-08-09 0 Das ist die Verallgemeinerung von management#28, das am 2026-08-06 bewusst nach
|
||||
verfahren/retro/2026-08-09.md 112 component-ref;issue-ref no 2026-08-09 0 - `status:next`: management#15 und #20 (fällig 31.08.) — Zusage von sorb
|
||||
verfahren/retro/2026-08-09.md 113 component-ref;issue-ref no 2026-08-09 0 - `status:wartet` entfernt bei threadnet-call#4 und ThreadNet-Web#11: der im Issue
|
||||
verfahren/retro/2026-08-09.md 115 count no 2026-08-09 0 - **M5 — Härtung** angelegt, 14 Issues aus M1 verschoben. Trennlinie: *Ist etwas
|
||||
verfahren/retro/2026-08-09.md 123 status no 2026-08-09 0 ## Offen aus dieser Retro
|
||||
verfahren/stillstandspruefung.md 11 status no 2026-08-09 0 der bei jedem Lauf verworfen wurde, während Flux grün meldete.
|
||||
verfahren/stillstandspruefung.md 23 component-ref;mirror-topology no 2026-08-09 0 | Repo ohne aktiven Push-Mirror | `game-operating` wurde angelegt und nie gespiegelt — auf Gitea existierte es nicht |
|
||||
verfahren/stillstandspruefung.md 24 component-ref;mirror-topology;issue-ref no 2026-08-09 0 | Mirror-Drift | MIRROR-01 (management#28): fällt der Mirror aus, liefert Flux still den letzten Stand weiter |
|
||||
verfahren/stillstandspruefung.md 25 component-ref;status no 2026-08-09 0 | Pipeline mit null Jobs | ThreadNet-Web 203/204, threadnet-call 187 — rot, ohne dass etwas kaputt war |
|
||||
verfahren/stillstandspruefung.md 26 status no 2026-08-09 0 | Erfolgreicher Job ohne Artefakt | `build_embedded` lief seit jeher grün und lud **nichts** hoch |
|
||||
verfahren/stillstandspruefung.md 27 version;path-claim no 2026-08-09 0 | npm-Paket zu klein | `0.19.2-threadnet.6`: 12,5 KB statt 12,8 MB, ohne `dist/` |
|
||||
verfahren/stillstandspruefung.md 32 count no 2026-08-09 0 jahrelang durchrutscht. (Beim ersten Lauf kamen so zwei Projekte zum Vorschein,
|
||||
verfahren/stillstandspruefung.md 37 component-ref no 2026-08-09 0 Geplanter CI-Job im management-Repo, zusätzlich von Hand über *Run pipeline*
|
||||
verfahren/stillstandspruefung.md 38 status no 2026-08-09 0 auslösbar. Befunde färben die Pipeline **rot** — das ist bei uns die Alarmanlage,
|
||||
verfahren/stillstandspruefung.md 39 path-claim no 2026-08-09 0 nicht ein zusätzlicher Meldeweg (siehe `gitops/CLAUDE.md` zur TURN-Rotation).
|
||||
verfahren/stillstandspruefung.md 45 mirror-topology yes 2026-08-09 0 export GITEA_TOKEN=$(cat ~/.config/gitea-rohana/push-token) # fuer private Spiegel
|
||||
verfahren/stillstandspruefung.md 53 component-ref;date-claim;mirror-topology no 2026-08-09 0 aufgefallen am 2026-08-09: `game-operating` wurde auf Gitea privat gestellt, und
|
||||
verfahren/stillstandspruefung.md 54 count;mirror-topology no 2026-08-09 0 die Prüfung übersprang den Mirror-Abgleich klaglos. Ein Repo, das gespiegelt wird,
|
||||
verfahren/textbloecke.md 5 status;path-claim;mirror-topology no 2026-08-06 3 Die Konventionen stehen kanonisch in [`CLAUDE.md`](../CLAUDE.md) — aber eine
|
||||
verfahren/textbloecke.md 13 path-claim;date-claim;mirror-topology no 2026-08-06 3 passiert am 2026-08-02, als `gitops/CLAUDE.md` „keine Gitea-Ausnahme mehr" behauptete,
|
||||
verfahren/textbloecke.md 14 component-ref;path-claim no 2026-08-06 3 während die `management/CLAUDE.md` zwei nannte.
|
||||
verfahren/textbloecke.md 24 component-ref yes 2026-08-06 3 Lies zuerst CLAUDE.md im management-Repo auf git.lab und halte dich daran.
|
||||
verfahren/textbloecke.md 25 status;mirror-topology yes 2026-08-06 3 Kanonisch ist git.lab; nie direkt nach Gitea pushen.
|
||||
verfahren/textbloecke.md 27 count yes 2026-08-06 3 Bevor du ein Issue schließt oder darüber urteilst: vollständig lesen, inklusive
|
||||
verfahren/textbloecke.md 30 status yes 2026-08-06 3 Verifiziert und vermutet klar trennen; fremde Messungen als fremde kennzeichnen.
|
||||
verfahren/textbloecke.md 35 count;path-claim no 2026-08-06 3 > dem Pfad `sorb/Backlogs` statt nach dem Namen `Backlogs`; und ein Issue, von dem
|
||||
verfahren/textbloecke.md 43 component-ref;mirror-topology yes 2026-08-06 3 Konventionen: CLAUDE.md im management-Repo — von hier lesbar über den Gitea-Mirror
|
||||
verfahren/textbloecke.md 44 component-ref;mirror-topology yes 2026-08-06 3 rohana.axion1337.de/sorb/management. Dort NUR lesen, niemals hinpushen.
|
||||
verfahren/textbloecke.md 48 status;version yes 2026-08-06 3 Ping auf 10.58.73.17 schlägt IMMER fehl (nur 443 + DNS offen), das ist kein
|
||||
verfahren/textbloecke.md 58 count yes 2026-08-06 3 Öffne auf git.lab ein Issue aus der Vorlage "Deploy-Übergabe"
|
||||
verfahren/textbloecke.md 64 status yes 2026-08-06 3 · Außenwirkung und Not-Aus · Rollback · bewusst offen Gelassenes.
|
||||
verfahren/textbloecke.md 79 status;mirror-topology yes 2026-08-06 3 - Alle Commits über git.lab gepusht, kein Rest im Arbeitsverzeichnis, Mirror grün.
|
||||
verfahren/textbloecke.md 80 count yes 2026-08-06 3 - Jeder offene Punkt und Nebenbefund ist ein Issue — nichts bleibt nur im Chat.
|
||||
vision/axion1337-chat.md 3 date-claim;issue-ref no 2026-08-05 4 > **Getragene Fassung** — geschärft im Struktur-Workshop am 2026-08-06 (#17).
|
||||
vision/axion1337-chat.md 23 status no 2026-08-05 4 **Kontrolliert wachsend** (entschieden 2026-08-06). Offen für Neue, aber **jeder
|
||||
vision/axion1337-chat.md 37 status no 2026-08-05 4 Nicht mehr offen: Das Rebranding wird in **M4 zu Ende gebracht**, nicht separat
|
||||
vision/axion1337-chat.md 38 path-claim no 2026-08-05 4 terminiert — siehe [`threadnet.md`](threadnet.md).
|
||||
vision/homelab.md 3 date-claim;issue-ref no 2026-08-05 4 > **Getragene Fassung** — geschärft im Struktur-Workshop am 2026-08-06 (#17).
|
||||
vision/homelab.md 33 component-ref;status;issue-ref no 2026-08-05 4 [#10](https://git.lab/axion1337.chat/management/-/issues/10) — offen bleibt
|
||||
vision/homelab.md 35 mirror-topology no 2026-08-05 4 Gitea-Datenbank). Siehe dort.
|
||||
vision/threadnet.md 3 date-claim;issue-ref no 2026-08-09 0 > **Getragene Fassung** — geschärft im Struktur-Workshop am 2026-08-06 (#17).
|
||||
vision/threadnet.md 9 component-ref no 2026-08-09 0 wiederverwendbare Produkte gedacht: ThreadNet-Web (Element-Web-Fork mit
|
||||
vision/threadnet.md 10 component-ref no 2026-08-09 0 Discord-artiger Raumliste), threadnet-call (Call-Fork), thread-net-git,
|
||||
vision/threadnet.md 11 component-ref no 2026-08-09 0 threadnet-operating.
|
||||
vision/threadnet.md 37 status no 2026-08-09 0 und entscheiden, ob bereinigt (History-Rewrite) oder bewusst akzeptiert wird.
|
||||
vision/threadnet.md 46 component-ref;issue-ref no 2026-08-09 0 „Produktreife ThreadNet" (ThreadNet-Web#6, #7, #10).
|
||||
|
Can't render this file because it contains an unexpected character in line 7 and column 89.
|
@@ -0,0 +1,162 @@
|
||||
repo path bytes last_commit_date last_author days_since_change last_commit
|
||||
ThreadNet-Web .github/PULL_REQUEST_TEMPLATE.md 703 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web AUTHORS.rst 851 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web CHANGELOG.md 182546 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web CONTRIBUTING.md 13373 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web README.md 6711 2026-07-29 Thore Cimbal 11 45fb329
|
||||
ThreadNet-Web apps/desktop/CHANGELOG.md 644932 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/desktop/README.md 7216 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/desktop/scripts/hak/README.md 3662 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/web/README.md 5820 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/web/playwright/e2e/crypto/test_indexeddb_cryptostore_dump/README.md 2202 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/web/playwright/e2e/read-receipts/readme.md 815 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/web/playwright/plugins/oauth_server/README.md 1046 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/web/src/customisations/README.md 28 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web apps/web/test/unit-tests/README.md 156 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web code_style.md 21876 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web developer_guide.md 4827 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/MVVM-v1.md 2827 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/MVVM.md 12199 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/app-load.md 2415 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/axion1337-fork.md 8709 2026-08-06 Thore Cimbal 3 965c456
|
||||
ThreadNet-Web docs/betas.md 1600 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/changelogs/CHANGELOG-2022.md 235803 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/changelogs/CHANGELOG-2023.md 121310 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/changelogs/CHANGELOG-pre-2022.md 391016 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/choosing-an-issue.md 3431 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/ciderEditor.md 4201 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/config.md 32308 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/custom-home.md 1602 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/customisations.md 3519 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/debugging.md 1210 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/deprecated-modules.md 3341 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/e2ee.md 1963 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/feature-flags.md 4719 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/features/README.md 335 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/features/composer.md 2166 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/features/keyboardShortcuts.md 2113 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/gdb.md 2053 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/generated/[id].md 18 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/icons.md 1531 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/index.md 30 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/install.md 4864 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/jitsi-dev.md 5546 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/jitsi.md 5028 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/kubernetes.md 5307 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/labs.md 7029 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/local-echo-dev.md 2182 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/media-handling.md 1246 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/memory-profiles-and-leaks.md 2463 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/monorepo.md 3036 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/native-node-modules.md 6055 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/oidc.md 1018 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/packaging.md 2402 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/playwright.md 12304 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/pr-previews.md 1376 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/readme-element-desktop.md 43 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/readme-element-web.md 39 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/readme-shared-components.md 57 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/release.md 12112 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/review.md 5674 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/room-list-store.md 10033 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/scrolling.md 4499 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/settings.md 12478 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/skinning.md 1329 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/theming.md 4287 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/translating-dev.md 7460 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/translating.md 1895 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/updates.md 821 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/usercontent.md 1585 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/widget-layouts.md 2911 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web docs/windows-requirements.md 1870 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web packages/module-api/README.md 2710 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web packages/module-api/element-web-module-api.api.md 16996 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web packages/playwright-common/README.md 1591 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web packages/shared-components/README.md 10820 2026-05-10 sorB 91 3da3635
|
||||
ThreadNet-Web packages/shared-components/static/README.md 143 2026-05-10 sorB 91 3da3635
|
||||
axion1337.chat-gitops .devcontainer/README.md 9057 2026-07-28 Thore Cimbal 12 4a3d7c7
|
||||
axion1337.chat-gitops CLAUDE.md 24219 2026-08-09 Thore Cimbal 0 c341faf
|
||||
axion1337.chat-gitops README.md 15564 2026-08-01 Thore Cimbal 8 cdecb00
|
||||
axion1337.chat-gitops docs/TASKS.md 27770 2026-07-31 Thore Cimbal 9 8ad9215
|
||||
axion1337.chat-gitops docs/deployment-guides/01-turn-server-setup.md 1412 2026-05-14 Scrublord MacBad 87 aee9a34
|
||||
axion1337.chat-gitops docs/deployment-guides/02-authentik-identity-provider.md 5116 2026-08-06 Thore Cimbal 3 a81ea0d
|
||||
axion1337.chat-gitops docs/deployment-guides/03-monitoring-integration.md 1466 2026-05-14 Scrublord MacBad 87 aee9a34
|
||||
axion1337.chat-gitops docs/deployment-guides/04-element-customization.md 6138 2026-08-09 Thore Cimbal 0 9d9a87b
|
||||
axion1337.chat-gitops docs/deployment-guides/05-room-policies.md 1956 2026-05-14 Scrublord MacBad 87 aee9a34
|
||||
axion1337.chat-gitops docs/deployment-guides/06-moderation-content-scanning.md 12934 2026-07-29 Thore Cimbal 11 11a079d
|
||||
axion1337.chat-gitops docs/deployment-guides/07-host-maintenance-notifications.md 8516 2026-07-29 Thore Cimbal 11 3767720
|
||||
axion1337.chat-gitops docs/deployment-guides/08-concierge-gaeste-einladungen.md 4629 2026-08-09 Thore Cimbal 0 f6d2761
|
||||
axion1337.chat-gitops docs/deployment-guides/README.md 5330 2026-08-09 Thore Cimbal 0 151ef3c
|
||||
axion1337.chat-gitops docs/install.md 5531 2026-07-28 Thore Cimbal 12 9607687
|
||||
axion1337.chat-gitops docs/oldwiki/authentik.md 13683 2026-05-14 Scrublord MacBad 87 b1247b4
|
||||
axion1337.chat-gitops docs/oldwiki/fix report mrtc.md 17869 2026-05-14 Scrublord MacBad 87 b1247b4
|
||||
axion1337.chat-gitops docs/oldwiki/home.md 428825 2026-05-14 Scrublord MacBad 87 b1247b4
|
||||
axion1337.chat-gitops docs/oldwiki/invitereg.md 32278 2026-05-14 Scrublord MacBad 87 b1247b4
|
||||
axion1337.chat-gitops docs/ops-configmap-sync.md 10560 2026-05-14 Scrublord MacBad 87 5f50a60
|
||||
axion1337.chat-gitops docs/setup/README-Element-Setup.md 4391 2026-04-23 Scrublord MacBad 108 659acdf
|
||||
axion1337.chat-gitops docs/troubleshooting/AUTHENTIK-CREATE-INVITATION-FLOW.md 5769 2026-05-18 Scrublord MacBad 83 5bbb03b
|
||||
axion1337.chat-gitops docs/troubleshooting/AUTHENTIK-FIX-TEMPLATE.md 8163 2026-05-18 Scrublord MacBad 83 5bbb03b
|
||||
axion1337.chat-gitops docs/troubleshooting/AUTHENTIK-INVITATION-FLOW-FIX.md 6492 2026-05-18 Scrublord MacBad 83 5bbb03b
|
||||
axion1337.chat-gitops docs/troubleshooting/DIAGNOSTIK-AUTHENTIK-FLOW.md 7598 2026-05-18 Scrublord MacBad 83 5bbb03b
|
||||
axion1337.chat-gitops docs/troubleshooting/README.md 4634 2026-07-29 Thore Cimbal 11 932443d
|
||||
management .gitlab/issue_templates/Deploy-Übergabe.md 2623 2026-08-02 Thore Cimbal 7 3fe05e7
|
||||
management CLAUDE.md 12223 2026-08-09 Thore Cimbal 0 2b20f65
|
||||
management README.md 4516 2026-08-02 Thore Cimbal 7 3fe05e7
|
||||
management decisions/0001-gitlab-kanonisch-push-mirror.md 1398 2026-08-01 Thore Cimbal 8 fdf30d4
|
||||
management decisions/0002-issues-und-management-ins-lab.md 1903 2026-08-02 Thore Cimbal 7 3fe05e7
|
||||
management decisions/0003-cve-meldeweg-aggregiert.md 1303 2026-08-01 Thore Cimbal 8 fdf30d4
|
||||
management decisions/0004-site-to-site-vpn-hetzner-lab.md 4421 2026-08-02 Thore Cimbal 7 3fe05e7
|
||||
management decisions/0005-pm-framework-kanban.md 2255 2026-08-01 Thore Cimbal 8 fdf30d4
|
||||
management decisions/0006-wikis-konsolidieren-docusaurus.md 3340 2026-08-02 Thore Cimbal 7 9c3d252
|
||||
management decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md 3990 2026-08-02 Thore Cimbal 7 b6aaad7
|
||||
management decisions/0008-agenten-sessions-root-aequivalent.md 4397 2026-08-06 Thore Cimbal 3 ae62727
|
||||
management decisions/0009-commit-konventionen-und-historien-anonymisierung.md 4759 2026-08-09 Thore Cimbal 0 0fde69a
|
||||
management decisions/README.md 965 2026-08-01 Thore Cimbal 8 fdf30d4
|
||||
management decisions/template.md 504 2026-08-01 Thore Cimbal 8 fdf30d4
|
||||
management hosts/cfgmon.md 18064 2026-08-09 Thore Cimbal 0 d7db111
|
||||
management hosts/game.md 4019 2026-08-02 Thore Cimbal 7 9e0af13
|
||||
management hosts/matrix.md 11581 2026-08-09 Thore Cimbal 0 d7db111
|
||||
management hosts/overmind.md 9039 2026-08-09 Thore Cimbal 0 87f8ba3
|
||||
management roadmap.md 5161 2026-08-09 Thore Cimbal 0 d7db111
|
||||
management shared/branding.md 12156 2026-08-09 Thore Cimbal 0 d7db111
|
||||
management shared/commit-zuordnung-2026-08-07.md 13852 2026-08-09 Thore Cimbal 0 46c61e1
|
||||
management shared/lab-netzwerk.md 7592 2026-08-02 Thore Cimbal 7 164d96d
|
||||
management shared/zone-axion1337.md 6720 2026-08-06 Thore Cimbal 3 d019bfe
|
||||
management verfahren/README.md 1282 2026-08-06 Thore Cimbal 3 ae62727
|
||||
management verfahren/aar-vorlage.md 1507 2026-08-01 Thore Cimbal 8 3e81f40
|
||||
management verfahren/aar/2026-08-01-cve-pipeline-gitops47.md 4354 2026-08-01 Thore Cimbal 8 3e81f40
|
||||
management verfahren/aar/2026-08-01-labnet02-cfgmon.md 11181 2026-08-01 Thore Cimbal 8 97fe9e0
|
||||
management verfahren/aar/2026-08-01-labnet02-lab.md 5519 2026-08-01 Thore Cimbal 8 830c740
|
||||
management verfahren/aar/2026-08-02-wiki-und-desktop-clients.md 10569 2026-08-09 Thore Cimbal 0 d7db111
|
||||
management verfahren/aar/2026-08-09-refinement-und-betrieb.md 6674 2026-08-09 Thore Cimbal 0 2f012a6
|
||||
management verfahren/deploy-uebergabe.md 4557 2026-08-02 Thore Cimbal 7 3fe05e7
|
||||
management verfahren/issue-migration/README.md 2276 2026-08-01 Thore Cimbal 8 0f3f155
|
||||
management verfahren/refinement.md 4432 2026-08-09 Thore Cimbal 0 0fde69a
|
||||
management verfahren/retro/2026-08-09.md 5944 2026-08-09 Thore Cimbal 0 0fde69a
|
||||
management verfahren/stillstandspruefung.md 3316 2026-08-09 Thore Cimbal 0 d4004ee
|
||||
management verfahren/textbloecke.md 5035 2026-08-06 Thore Cimbal 3 ae62727
|
||||
management vision/axion1337-chat.md 1701 2026-08-05 Thore Cimbal 4 d31fef4
|
||||
management vision/homelab.md 1538 2026-08-05 Thore Cimbal 4 d31fef4
|
||||
management vision/threadnet.md 2180 2026-08-09 Thore Cimbal 0 d7db111
|
||||
thread-net-git README.md 4336 2026-08-02 Thore Cimbal 7 2f4a15c
|
||||
threadnet-call .github/PULL_REQUEST_TEMPLATE.md 1473 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call CONTRIBUTING.md 4110 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call README.md 14981 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call WIDGET_TEST.md 972 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call config/otel_dev/README.md 1265 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/README.md 338 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/_developer.md 4082 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/axion1337-fork.md 7851 2026-08-09 Thore Cimbal 0 d13cce73
|
||||
threadnet-call docs/controls.md 2646 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/embedded_standalone.md 6544 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/linking.md 2484 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/linking_concept_reasoning.md 2027 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/self_hosting.md 12374 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call docs/url_params.md 27605 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call embedded/ios/README.md 931 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call embedded/web/README.md 925 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call sdk/README.md 2371 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call src/mediapipe/imageSegmenter/README.md 385 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-call src/sound/LICENCE.md 536 2026-07-31 Thore Cimbal 9 8fb630cf
|
||||
threadnet-operating README.md 2026 2026-08-02 Thore Cimbal 7 32f89af
|
||||
threadnet-operating monitoring/README.md 6555 2026-08-01 sorb 8 0bd77e2
|
||||
|
@@ -0,0 +1,127 @@
|
||||
repo scope metric value
|
||||
ThreadNet-Web 2026-05 commits 3
|
||||
ThreadNet-Web 2026-05 commits_docs_only 0
|
||||
ThreadNet-Web 2026-05 commits_touching_code 3
|
||||
ThreadNet-Web 2026-05 commits_touching_docs 2
|
||||
ThreadNet-Web 2026-07 commits 28
|
||||
ThreadNet-Web 2026-07 commits_docs_only 3
|
||||
ThreadNet-Web 2026-07 commits_touching_code 23
|
||||
ThreadNet-Web 2026-07 commits_touching_docs 4
|
||||
ThreadNet-Web 2026-08 commits 21
|
||||
ThreadNet-Web 2026-08 commits_docs_only 2
|
||||
ThreadNet-Web 2026-08 commits_touching_code 19
|
||||
ThreadNet-Web 2026-08 commits_touching_docs 2
|
||||
ThreadNet-Web ALL active_days 10
|
||||
ThreadNet-Web ALL commits 52
|
||||
ThreadNet-Web ALL commits_docs_only 5
|
||||
ThreadNet-Web ALL commits_touching_code 45
|
||||
ThreadNet-Web ALL commits_touching_docs 8
|
||||
ThreadNet-Web ALL days_since_last_commit 0
|
||||
ThreadNet-Web ALL first_commit 2026-05-10
|
||||
ThreadNet-Web ALL last_commit 2026-08-09
|
||||
ThreadNet-Web ALL max_gap_days 79
|
||||
ThreadNet-Web ALL max_gap_from 2026-05-10
|
||||
ThreadNet-Web ALL max_gap_to 2026-07-28
|
||||
axion1337.chat-gitops 2026-04 commits 107
|
||||
axion1337.chat-gitops 2026-04 commits_docs_only 4
|
||||
axion1337.chat-gitops 2026-04 commits_touching_code 103
|
||||
axion1337.chat-gitops 2026-04 commits_touching_docs 5
|
||||
axion1337.chat-gitops 2026-05 commits 40
|
||||
axion1337.chat-gitops 2026-05 commits_docs_only 9
|
||||
axion1337.chat-gitops 2026-05 commits_touching_code 31
|
||||
axion1337.chat-gitops 2026-05 commits_touching_docs 12
|
||||
axion1337.chat-gitops 2026-07 commits 74
|
||||
axion1337.chat-gitops 2026-07 commits_docs_only 21
|
||||
axion1337.chat-gitops 2026-07 commits_touching_code 51
|
||||
axion1337.chat-gitops 2026-07 commits_touching_docs 27
|
||||
axion1337.chat-gitops 2026-08 commits 48
|
||||
axion1337.chat-gitops 2026-08 commits_docs_only 11
|
||||
axion1337.chat-gitops 2026-08 commits_touching_code 32
|
||||
axion1337.chat-gitops 2026-08 commits_touching_docs 13
|
||||
axion1337.chat-gitops ALL active_days 23
|
||||
axion1337.chat-gitops ALL commits 269
|
||||
axion1337.chat-gitops ALL commits_docs_only 45
|
||||
axion1337.chat-gitops ALL commits_touching_code 217
|
||||
axion1337.chat-gitops ALL commits_touching_docs 57
|
||||
axion1337.chat-gitops ALL days_since_last_commit 0
|
||||
axion1337.chat-gitops ALL first_commit 2026-04-21
|
||||
axion1337.chat-gitops ALL last_commit 2026-08-09
|
||||
axion1337.chat-gitops ALL max_gap_days 70
|
||||
axion1337.chat-gitops ALL max_gap_from 2026-05-18
|
||||
axion1337.chat-gitops ALL max_gap_to 2026-07-27
|
||||
management 2026-07 commits 23
|
||||
management 2026-07 commits_docs_only 22
|
||||
management 2026-07 commits_touching_code 1
|
||||
management 2026-07 commits_touching_docs 23
|
||||
management 2026-08 commits 63
|
||||
management 2026-08 commits_docs_only 58
|
||||
management 2026-08 commits_touching_code 5
|
||||
management 2026-08 commits_touching_docs 63
|
||||
management ALL active_days 8
|
||||
management ALL commits 86
|
||||
management ALL commits_docs_only 80
|
||||
management ALL commits_touching_code 6
|
||||
management ALL commits_touching_docs 86
|
||||
management ALL days_since_last_commit 0
|
||||
management ALL first_commit 2026-07-30
|
||||
management ALL last_commit 2026-08-09
|
||||
management ALL max_gap_days 3
|
||||
management ALL max_gap_from 2026-08-02
|
||||
management ALL max_gap_to 2026-08-05
|
||||
thread-net-git 2026-07 commits 10
|
||||
thread-net-git 2026-07 commits_docs_only 1
|
||||
thread-net-git 2026-07 commits_touching_code 9
|
||||
thread-net-git 2026-07 commits_touching_docs 3
|
||||
thread-net-git 2026-08 commits 1
|
||||
thread-net-git 2026-08 commits_docs_only 1
|
||||
thread-net-git 2026-08 commits_touching_code 0
|
||||
thread-net-git 2026-08 commits_touching_docs 1
|
||||
thread-net-git ALL active_days 3
|
||||
thread-net-git ALL commits 11
|
||||
thread-net-git ALL commits_docs_only 2
|
||||
thread-net-git ALL commits_touching_code 9
|
||||
thread-net-git ALL commits_touching_docs 4
|
||||
thread-net-git ALL days_since_last_commit 7
|
||||
thread-net-git ALL first_commit 2026-07-30
|
||||
thread-net-git ALL last_commit 2026-08-02
|
||||
thread-net-git ALL max_gap_days 2
|
||||
thread-net-git ALL max_gap_from 2026-07-31
|
||||
thread-net-git ALL max_gap_to 2026-08-02
|
||||
threadnet-call 2026-07 commits 1
|
||||
threadnet-call 2026-07 commits_docs_only 0
|
||||
threadnet-call 2026-07 commits_touching_code 1
|
||||
threadnet-call 2026-07 commits_touching_docs 1
|
||||
threadnet-call 2026-08 commits 11
|
||||
threadnet-call 2026-08 commits_docs_only 3
|
||||
threadnet-call 2026-08 commits_touching_code 8
|
||||
threadnet-call 2026-08 commits_touching_docs 4
|
||||
threadnet-call ALL active_days 4
|
||||
threadnet-call ALL commits 12
|
||||
threadnet-call ALL commits_docs_only 3
|
||||
threadnet-call ALL commits_touching_code 9
|
||||
threadnet-call ALL commits_touching_docs 5
|
||||
threadnet-call ALL days_since_last_commit 0
|
||||
threadnet-call ALL first_commit 2026-07-31
|
||||
threadnet-call ALL last_commit 2026-08-09
|
||||
threadnet-call ALL max_gap_days 6
|
||||
threadnet-call ALL max_gap_from 2026-07-31
|
||||
threadnet-call ALL max_gap_to 2026-08-06
|
||||
threadnet-operating 2026-07 commits 12
|
||||
threadnet-operating 2026-07 commits_docs_only 4
|
||||
threadnet-operating 2026-07 commits_touching_code 7
|
||||
threadnet-operating 2026-07 commits_touching_docs 5
|
||||
threadnet-operating 2026-08 commits 9
|
||||
threadnet-operating 2026-08 commits_docs_only 1
|
||||
threadnet-operating 2026-08 commits_touching_code 8
|
||||
threadnet-operating 2026-08 commits_touching_docs 2
|
||||
threadnet-operating ALL active_days 4
|
||||
threadnet-operating ALL commits 21
|
||||
threadnet-operating ALL commits_docs_only 5
|
||||
threadnet-operating ALL commits_touching_code 15
|
||||
threadnet-operating ALL commits_touching_docs 7
|
||||
threadnet-operating ALL days_since_last_commit 7
|
||||
threadnet-operating ALL first_commit 2026-07-30
|
||||
threadnet-operating ALL last_commit 2026-08-02
|
||||
threadnet-operating ALL max_gap_days 1
|
||||
threadnet-operating ALL max_gap_from 2026-07-30
|
||||
threadnet-operating ALL max_gap_to 2026-07-31
|
||||
|
File diff suppressed because it is too large
Load Diff
+11391
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,544 @@
|
||||
repo path line marker text blame_date days_since_blame blame_commit blame_author
|
||||
ThreadNet-Web apps/desktop/README.md 58 TODO [TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths] 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/desktop/README.md 64 TODO TODO: List native pre-requisites 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/desktop/playwright/e2e/launch/launch.spec.ts 69 XXX // XXX: this test works fine locally but in CI the app start races with the test plumbing up the stdout/stderr pipes 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/desktop/scripts/copy-res.ts 57 XXX // XXX: Use a debounce because for some reason if we read the language 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/desktop/src/protocol.ts 28 XXX // XXX: passing args to protocol handlers only works on Windows, so unpackaged deep-linking 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/desktop/src/vectormenu.ts 132 XXX // XXX: vectorConfig won't have defaults applied to it so we need to duplicate them here 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/desktop/src/webcontents-handler.ts 136 XXX // XXX: We cannot easily save a blob from the main process as 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/.eslintrc.cjs 118 XXX // XXX: Temporarily allow these as they are not available via the main export 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/composer/RTE.spec.ts 36 TODO // TODO add tests for rich text mode 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/composer/RTE.spec.ts 90 TODO // TODO add tests for rich text mode 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/devtools/devtools.spec.ts 25 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/devtools/upgraderoom.spec.ts 33 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/editing/editing.spec.ts 275 XXX axe.disableRules("color-contrast"); // XXX: We have some known contrast issues here 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/editing/editing.spec.ts 295 XXX await app.getComposerField().hover(); // XXX: move the hover to get rid of the "Edit" tooltip 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/invite/decline-and-block-invite-dialog.spec.ts 23 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/invite/invite-dialog.spec.ts 139 TODO // TODO: implement the test on room-header.spec.ts 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/location/location.spec.ts 81 XXX "color-contrast", // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/location/location.spec.ts 82 XXX "region", // XXX: ContextMenu managed=false does not provide a role. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/pinned-messages/index.ts 67 TODO // TODO: without this wait, some tests that send lots of messages flake 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/read-receipts/high-level.spec.ts 207 TODO // TODO: I (andyb) think this will fall in an encrypted room 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/read-receipts/high-level.spec.ts 250 TODO // TODO: I (andyb) think this will fall in an encrypted room 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/read-receipts/index.ts 354 TODO // TODO: without this wait, some tests that send lots of messages flake 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/room/create-room.spec.ts 36 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/room/create-room.spec.ts 116 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/settings/general-room-settings-tab.spec.ts 38 XXX axe.disableRules("color-contrast"); // XXX: We have some known contrast issues here 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/settings/notifications/notifications-settings-2-tab.spec.ts 21 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/settings/notifications/notifications-settings-tab.spec.ts 21 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts 52 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/settings/room-settings/room-security-tab.spec.ts 71 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/settings/room-settings/room-video-tab.spec.ts 37 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/spaces/spaces.spec.ts 295 XXX // XXX: We have some known contrast issues here 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/spaces/spaces.spec.ts 319 TODO await expect(page.locator(".mx_SpacePanel:not(.collapsed)")).toBeVisible(); // TODO: replace :not() selector 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/spaces/spaces.spec.ts 363 XXX // XXX: We have some known contrast issues here 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/spaces/spaces.spec.ts 399 XXX axe.disableRules("color-contrast"); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/spaces/threads-activity-centre/index.ts 204 TODO // TODO: without this wait, some tests that send lots of messages flake 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/spotlight/spotlight.spec.ts 191 TODO // TODO: We currently can’t test finding rooms on other homeservers/other protocols 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/threads/threads.spec.ts 107 TODO // TODO: remove this after fixing the issue of ReadReceiptGroup being hidden on the bubble layout 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/threads/threads.spec.ts 111 TODO // TODO: enable this after fixing the issue of ReadReceiptGroup being hidden on the bubble layout 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/threads/threads.spec.ts 216 XXX // XXX: one would expect this redaction to be shown in the thread the message was in, but due to redactions 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/timeline/timeline.spec.ts 104 XXX // XXX: If we send the second event too quickly, there won't be 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/timeline/timeline.spec.ts 123 XXX // XXX: If we send the second event too quickly, there won't be 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/timeline/timeline.spec.ts 1346 XXX // XXX: This test doesn't actually work because the service worker relies on IndexedDB, which Playwright forces 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/utils.ts 24 FIXME * FIXME this does not do what it is supposed to do, and I think it is unfixable. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/e2e/widgets/permissions-dialog.spec.ts 91 XXX axe.disableRules(["color-contrast", "nested-interactive"]); // XXX: Inheriting colour contrast issues from room view. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/pages/ElementAppPage.ts 304 TODO * TODO: fix this so that it works correctly if, say, the member list was open instead of the room info panel. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/pages/bot.ts 243 XXX // XXX: workaround https://github.com/element-hq/element-web/issues/26755 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/playwright/plugins/oauth_server/index.ts 54 TODO // TODO: validate that the request carries an auth header which matches the access token we issued above 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/_common.pcss 189 FIXME /* FIXME THEME - Tint by CSS rather than referencing a duplicate asset */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/_common.pcss 582 XXX /* XXX: Our button style are a mess: buttons that happen to appear in dialogs get special styles applied 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/_common.pcss 741 TODO /* TODO: Review mx_GeneralButton usage to see if it can use a different class */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/_common.pcss 911 TODO /* TODO: Review mx_MessageTimestamp usage after finishing migration of timeline tiles to shared components. */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/structures/_FilePanel.pcss 26 FIXME /* FIXME: rather than having EventTile's default CSS be for MessagePanel, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/structures/_SpacePanel.pcss 206 TODO transition: all 0.2s ease-in-out; /* TODO transition */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/auth/_InteractiveAuthEntryComponents.pcss 40 XXX /* XXX: This should be a common button class */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/dialogs/security/_CreateCrossSigningDialog.pcss 23 TODO /* TODO: Consider setting this for all dialog titles. */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/dialogs/security/_CreateSecretStorageDialog.pcss 47 TODO /* TODO: Consider setting this for all dialog titles. */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/dialogs/security/_CreateSecretStorageDialog.pcss 57 FIXME /* FIXME: plinth colour in new theme(s). background-color: $accent; */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/dialogs/security/_RestoreKeyBackupDialog.pcss 15 FIXME /* FIXME: plinth colour in new theme(s). background-color: $accent; */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/elements/_Dropdown.pcss 88 XXX /* XXX: hack to prevent text box being too big and pushing */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/elements/_Field.pcss 8 TODO /* TODO: Consider unifying with general input styles in _light.pcss */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/elements/_GenericEventListSummary.pcss 19 TODO line-height: $font-30px; /* TODO: Use a variable */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/elements/_GenericEventListSummary.pcss 52 TODO order: 9; /* TODO: Remove */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/elements/_RichText.pcss 1 XXX /* XXX: bleurgh, what is this? These classes totally break the component */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/messages/_MJitsiWidgetEvent.pcss 11 XXX color: $header-panel-text-primary-color; /* XXX: Variable abuse */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/messages/_MessageActionBar.pcss 52 TODO /* TODO: use a new class name instead */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/messages/_ThreadActionBar.pcss 43 TODO /* TODO: use a new class name instead */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_AppsDrawer.pcss 11 TODO --minWidth: 240px; /* TODO this should be 300px but that's too large */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_EventBubbleTile.pcss 301 TODO /* TODO: Use a common class name instead */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_EventTile.pcss 22 TODO clear: both; /* TODO: check if this is necessary */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_EventTile.pcss 152 TODO /* TODO: adjust the values for IRC layout */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_EventTile.pcss 209 TODO /* TODO: ultimately we probably want some transition on here. */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_EventTile.pcss 551 TODO /* TODO: check if this would be necessary; */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_EventTile.pcss 563 TODO /* Reset default values. TODO: remove */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_RoomPreviewCard.pcss 75 XXX /* XXX Remove this when video rooms leave beta */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/rooms/_ThreadSummary.pcss 45 XXX /* XXX: We use an HEXA `transparent` to work around a Safari <15.4 bug */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/css/views/voip/_LegacyCallView.pcss 16 XXX /* XXX: PiPContainer sets pointer-events: none - should probably be set back in a better place */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/decoder-ring/decoder.js 90 TODO // TODO: expiry/retry logic here? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/legacy-dark/css/_legacy-dark.pcss 180 TODO $button-danger-disabled-bg-color: #f5b6bb; /* TODO: Verify color */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/legacy-light/css/_legacy-light.pcss 12 TODO TODO: Consider putting all emoji fonts to the end rather than the front. */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/legacy-light/css/_legacy-light.pcss 185 XXX $video-feed-secondary-background: #394049; /* XXX: Color from dark theme */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/legacy-light/css/_legacy-light.pcss 262 TODO $button-danger-disabled-bg-color: #f5b6bb; /* TODO: Verify color */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/light-custom/css/_custom.pcss 130 TODO * TODO: Add link 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/light/css/_light.pcss 12 TODO TODO: Consider putting all emoji fonts to the end rather than the front. */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/light/css/_light.pcss 234 TODO $button-danger-disabled-bg-color: #f5b6bb; /* TODO: Verify color */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/res/themes/light/css/_light.pcss 305 XXX $video-feed-secondary-background: #394049; /* XXX: Color from dark theme */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/@types/matrix-js-sdk.d.ts 48 XXX // XXX unspecced usages of `m.room.*` events 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Avatar.ts 106 XXX // XXX: Ideally we'd clear this cache when the theme changes 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Avatar.ts 112 XXX if (!s) return ""; // XXX: should never happen but empirically does by evidence of a rageshake 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Avatar.ts 144 XXX // XXX: We should find out what causes the name to sometimes be falsy. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/DateUtils.ts 39 XXX // XXX: Ideally we could just specify `hour12: boolean` but it has issues on Chrome in the `en` locale 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/HtmlUtils.tsx 361 XXX // XXX: We sanitize the HTML whilst also highlighting its text nodes, to avoid accidentally trying 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/HtmlUtils.tsx 365 XXX // XXX: hacky bodge to temporarily apply a textFilter to the sanitizeParams structure. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/IdentityAuthClient.tsx 40 XXX // XXX: We shouldn't have to create a whole new MatrixClient just to 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/IdentityAuthClient.tsx 170 XXX // XXX: The spec is `token`, but we used `access_token` for a Sydent release. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/LegacyCallHandler.tsx 528 XXX // XXX: this is used by the IPC into Electron to keep device awake 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/LegacyCallHandler.tsx 586 TODO // TODO: We should either do away with these or figure out a copy for each code (expect user_hangup...) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Lifecycle.ts 104 XXX // XXX we might want to fire a new event here to let the app know that the login failed ? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Lifecycle.ts 1136 XXX // XXX: Defer this so that it doesn't race with MatrixChat unmounting the world by going to /#/welcome 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Login.ts 151 XXX // XXX: Synapse historically wanted `number` and not `phone` 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Login.ts 273 TODO // TODO: should we prompt here? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/MatrixClientPeg.ts 474 XXX // XXX: what is our initial pagination token?! it somehow needs to be synchronised with /sync. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/MediaDeviceHandler.ts 18 XXX // XXX: MediaDeviceKind is a union type, so we make our own enum 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Modal.tsx 183 DEPRECATED * DEPRECATED. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Modal.tsx 279 XXX // XXX: This is destructive 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Modal.tsx 286 XXX // XXX: This is destructive 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Modal.tsx 347 XXX // XXX: This is destructive 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 176 XXX // XXX: exported for tests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 270 XXX // XXX: Exported for tests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 331 TODO // TODO: Support alternative branding in messaging 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 431 XXX // XXX: Exported for tests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 502 XXX // XXX: exported for tests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 547 TODO // TODO: Use the call_id to get the *correct* call. We assume there is only one call per room here. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Notifier.ts 557 XXX // XXX: Should use parseCallNotificationContent once the types are exported. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Registration.tsx 25 TODO // TODO: Update as needed for https://github.com/matrix-org/matrix-doc/issues/1514 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/Resend.ts 48 XXX // XXX: temporary logging to try to diagnose 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/RoomNotifs.ts 75 XXX // XXX: We have to assume the default is to notify for all messages 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarAuthClient.ts 22 TODO // TODO: Generify the name of this class and all components within - it's not just for Scalar. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarAuthClient.ts 239 XXX method: "GET", // XXX: Actions shouldn't be GET requests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarMessaging.ts 10 TODO // TODO: Generify the name of this and all components within - it's not just for scalar. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarMessaging.ts 192 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarMessaging.ts 211 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarMessaging.ts 505 XXX // XXX: This gets the raw event object (I think because we can't 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/ScalarMessaging.ts 868 TODO // TODO -- Scalar postMessage API should be namespaced with event.data.api field 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/SendHistoryManager.ts 30 TODO // TODO: Performance issues? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/SlidingSyncManager.ts 336 TODO // the request change we have sent out. TODO: this may not be true if you concurrently subscribe to a room :/ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/TextForEvent.tsx 65 FIXME // FIXME: Find a better way to determine this from the event? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/TextForEvent.tsx 112 XXX // XXX: SYJS-16 "sender is sometimes null for join messages" 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/TextForEvent.tsx 538 XXX // XXX: This is also surely broken for i18n 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/TextForEvent.tsx 904 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/UserActivity.ts 180 XXX // XXX: exported for tests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/accessibility/KeyboardShortcutUtils.ts 69 XXX // XXX: This keyboard shortcut isn't manually added to 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/accessibility/KeyboardShortcuts.ts 160 TODO // TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/accessibility/KeyboardShortcuts.ts 165 TODO // TODO: We should figure out what to do with the keyboard shortcuts that are not handled by KeybindingManager 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/accessibility/KeyboardShortcuts.ts 325 TODO // TODO: TravisR will fix this nightmare when the new version of the SettingsStore becomes a thing 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/accessibility/KeyboardShortcuts.ts 326 XXX // XXX: Exported for tests 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/async-components/views/dialogs/security/ImportE2eKeysDialog.tsx 110 TODO // TODO: it would probably be nice to give some feedback about what we've imported here. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/autocomplete/UserProvider.tsx 87 TODO // TODO: lazyload if we have no ev.sender room member? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ContextMenu.tsx 176 XXX // XXX: This isn't pretty but the only way to allow opening a different context menu on right click whilst 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/EmbeddedPage.tsx 112 HACK // HACK: Workaround for the context's MatrixClient not being set up at render time. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/EmbeddedPage.tsx 119 HACK // HACK: Workaround for the context's MatrixClient not updating. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/IndicatorScrollbar.tsx 155 HACK // HACK: We increase the amount of scroll to counteract smooth scrolling browsers. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/LegacyCallEventGrouper.ts 95 FIXME // FIXME: Find a better way to determine this from the event? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/LoggedInView.tsx 228 TODO // TODO: In a future app release, remove support for legacy key. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/LoggedInView.tsx 298 TODO // TODO decrease this once Spaces launches as it'll no longer need to include the 56px Community Panel 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/LoggedInView.tsx 677 XXX // XXX: Forwarding Dead keys in this way does not work as intended but better to at least 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 176 TODO * TODO: this doesn't work well, because updates to React state are not instantaneous, meaning that if several 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 235 XXX * XXX it's unclear if this is ever cleared, so what happens if the user logs out and then logs back in? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 308 TODO // TODO: show an error screen, rather than a spinner of doom 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 548 XXX // XXX: This is a very unreliable way to detect whether or not the the devtools are open 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 684 XXX // XXX: This is a collection of several hacks to solve a minor problem. We want to 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 699 XXX localStorage.setItem("mx_is_url", fullUrl); // XXX: Do we still need this? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 1226 TODO // TODO: Immutable DMs replaces this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 1423 HACK // HACK: This is a pretty brutal way of threading the invite back through 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 1542 XXX // XXX: fix this properly by having Lifecycle not emit OnLoggedIn when it knows it is about to emit a 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 1943 TODO // TODO: Handle encoded room/event IDs: https://github.com/vector-im/element-web/issues/9149 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 1979 TODO // TODO: Replace oob_data with the threepidInvite (which has the same info). 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MatrixChat.tsx 2153 XXX // XXX: workaround for https://github.com/vector-im/element-web/issues/11643 causing a login-loop 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/MessagePanel.tsx 481 TODO // TODO: Implement granular (per-room) hide options 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/RightPanel.tsx 126 XXX // XXX: There are three different ways of 'closing' this panel depending on what state 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/RoomSearchView.tsx 48 XXX // XXX: todo: merge overlapping results somehow? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/RoomSearchView.tsx 49 XXX // XXX: why doesn't searching on name work? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/RoomSearchView.tsx 222 XXX // XXX: can this ever happen? It will make the result count 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/RoomView.tsx 2356 XXX // XXX: in future we could give the option of a 'Preview' button which lets them view anyway. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ScrollPanel.tsx 46 XXX * XXX: It's likely this is unnecessary and can be derived from 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ScrollPanel.tsx 573 TODO // TODO: Document what magic number 0.9 is doing 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ScrollPanel.tsx 648 TODO // TODO: do a binary search here, as items are sorted by offsetTop 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ScrollPanel.tsx 933 TODO // TODO: the classnames on the div and ol could do with being updated to 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/SpaceHierarchy.tsx 405 XXX // XXX: This logic is duplicated from the JS SDK which would normally decide what the name is. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/SpaceHierarchy.tsx 619 TODO setRooms([]); // TODO 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/TimelinePanel.tsx 262 XXX // XXX: we could track RM per TimelineSet rather than per Room. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/TimelinePanel.tsx 872 XXX // XXX: roomReadMarkerTsMap not updated here so it is now inconsistent. Replace 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/TimelinePanel.tsx 894 TODO // TODO: We should restrict this to only events in our timeline, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/UserView.tsx 51 XXX // XXX: We shouldn't need to null check the userId here, but we declare 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ViewSource.tsx 44 TODO // TODO: refresh the "Event ID:" modal header 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/ViewSource.tsx 61 FIXME const decryptedEventSource = mxEvent.clearEvent; // FIXME: clearEvent is private 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/structures/auth/Login.tsx 290 TODO // TODO: instead hide the Register button if registration is disabled by checking with the server, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/viewmodels/right_panel/user_info/admin/UserInfoMuteButtonViewModel.tsx 56 FIXME // FIXME: per the spec, if `events_default` is unset, it defaults to zero. If 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/auth/CaptchaForm.tsx 68 TODO // TODO: Remove this when the "mobile_register" page is retired. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/auth/InteractiveAuthEntryComponents.tsx 346 XXX // XXX: replace with StyledCheckbox 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/auth/InteractiveAuthEntryComponents.tsx 567 TODO 1, // TODO: Multiple send attempts? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/beacon/RoomCallBanner.tsx 46 TODO // TODO matrix rtc 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/beta/BetaCard.tsx 25 XXX // XXX: Keep this around for re-use in future Betas 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/context_menus/MessageContextMenu.tsx 147 XXX private reactButtonRef = createRef<any>(); // XXX Ref to a functional component 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/context_menus/MessageContextMenu.tsx 510 XXX // XXX: Typescript signature for AccessibleButton doesn't work properly for non-inputs like `a` 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/context_menus/MessageContextMenu.tsx 545 XXX // XXX: Typescript signature for AccessibleButton doesn't work properly for non-inputs like `a` 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/context_menus/MessageContextMenu.tsx 599 XXX // XXX: Typescript signature for AccessibleButton doesn't work properly for non-inputs like `a` 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/context_menus/WidgetContextMenu.tsx 109 XXX // XXX: won't i18n well, but looks like widget api only support 'message'? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/BaseDialog.tsx 106 XXX // XXX: The contract on MatrixClientContext says it is only available within a LoggedInView subtree, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/BaseDialog.tsx 175 XXX // XXX: We can't import ModuleAPI here because it causes a dependency cycle - hack and 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/BetaFeedbackDialog.tsx 20 XXX // XXX: Keep this around for re-use in future Betas 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/DeactivateAccountDialog.tsx 118 XXX // XXX: this should be returning a promise to maintain the state inside the state machine correct 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/DeactivateAccountDialog.tsx 188 XXX // XXX: onUIAuthComplete breaches the expected method contract, it gets away with it because it 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/FeedbackDialog.tsx 48 TODO // TODO: Handle rejection. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/GenericFeatureFeedbackDialog.tsx 41 TODO // TODO: Handle rejection. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/ModalWidgetDialog.tsx 149 TODO // TODO: Replace these with proper widget params 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/ModuleUiDialog.tsx 77 XXX // XXX: we have to fudge the types here a little as the react-sdk-module-api lacks React 19 support 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/PollHistoryDialog.tsx 29 TODO // @TODO hide dialog title somehow 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/ScrollableBaseModal.tsx 40 XXX // XXX: The contract on MatrixClientContext says it is only available within a LoggedInView subtree, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/UserSettingsDialog.tsx 265 XXX // XXX: SDKContext is provided within the LoggedInView subtree. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/WidgetCapabilitiesPromptDialog.tsx 30 TODO widgetKind: WidgetKind; // TODO: Refactor into the Widget class 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/dialogs/spotlight/SpotlightDialog.tsx 282 TODO // TODO we may want to put invites in their own list 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/directory/NetworkDropdown.tsx 91 XXX // XXX: This seems naff but is needed to convince TypeScript that the overload is fine 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/directory/NetworkDropdown.tsx 107 XXX // XXX: This seems naff but is needed to convince TypeScript that the overload is fine 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/AppPermission.tsx 66 HACK // HACK: We're relying on the query params when we should be relying on the widget's `data`. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/AppTile.tsx 552 XXX // XXX: This removes persistent elements from the DOM entirely, which feels like 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/AppTile.tsx 667 TODO // TODO replace with full screen interactions 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/ImageView.tsx 127 XXX // XXX: Refs to functional components 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/RoomAliasField.tsx 152 XXX // XXX: FIXME https://github.com/matrix-org/matrix-doc/issues/668 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/SSOButtons.tsx 126 TODO // TODO fallback icon 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/Spinner.tsx 17 XXX onFinished: any; // XXX: Spinner pretends to be a dialog so it must accept an onFinished, but it never calls it 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/elements/TruncatedList.tsx 45 XXX // XXX: I'm not sure why anything would pass null into this, it seems 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/messages/IBodyProps.ts 33 TODO onMessageAllowed?: () => void; // TODO: Docs 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/messages/MImageBody.tsx 216 FIXME // FIXME: we let images grow as wide as you like, rather than capped to 800x600. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/messages/MImageBody.tsx 534 XXX // XXX: Arguably we may want a different label when the animated image is WEBP and not GIF 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/messages/MImageBody.tsx 584 HACK {/* HACK: This div fills out space while the image loads, to prevent scroll jumps */} 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/messages/MessageEvent.tsx 293 TODO // TODO: move to eventTypes when location sharing spec stabilises 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/polls/pollHistory/PollHistory.tsx 62 TODO {/* @TODO this probably needs some style */} 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/right_panel/RoomSummaryCardView.tsx 134 XXX // XXX: this name should be part of the view model 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/right_panel/UserInfo.tsx 100 FIXME // FIXME: per the spec, if `events_default` is unset, it defaults to zero. If 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/right_panel/VerificationPanel.tsx 90 HACK // HACK: This is a terrible idea. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/right_panel/VerificationPanel.tsx 186 TODO // TODO: add way to open camera to scan a QR code 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/room_settings/AliasSettings.tsx 217 TODO // TODO: Add error handling based upon server validation 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/room_settings/AliasSettings.tsx 261 TODO // TODO: In future, we should probably be making sure that the alias actually belongs 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/room_settings/RoomProfileSettings.tsx 53 TODO // TODO: Merge with ProfileSettings? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/room_settings/RoomProfileSettings.tsx 141 TODO // TODO: What do we do about errors? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/room_settings/RoomProfileSettings.tsx 162 XXX // XXX: Note that we deliberately send an empty string on an empty topic rather 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/BasicMessageComposer.tsx 417 XXX // XXX: needed when going up and down in editing messages ... not sure why yet 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/BasicMessageComposer.tsx 751 TODO // TODO: does this allow us to get rid of EditorStateTransfer? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/EmojiButton.tsx 48 TODO // TODO: replace ContextMenuTooltipButton with a unified representation of 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/ExtraTile.tsx 37 XXX // XXX: We copy classes because it's easier 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/LegacyRoomList.tsx 433 TODO // TODO: Replace with archived view: https://github.com/vector-im/element-web/issues/14038 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/MessageComposerButtons.tsx 269 XXX // XXX: recording UI does not work well in narrow mode, so hide for now 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/NewRoomIntro.tsx 100 XXX // XXX: We should be using a real member object and not assuming what the receiver wants. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/PresenceLabel.tsx 48 XXX if (presence === "unavailable") return _t("presence|idle_for", { duration: duration }); // XXX: is this actually right? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/PresenceLabel.tsx 53 XXX if (presence === "unavailable") return _t("presence|idle"); // XXX: is this actually right? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/ReadReceiptGroup.tsx 226 XXX // XXX: We should be using a real member object and not assuming what the receiver wants. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomHeader/RoomHeader.tsx 441 DEPRECATED // DEPRECATED: Buttons added by a legacy react-sdk module API module. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomPreviewCard.tsx 40 XXX // XXX This component is currently only used for spaces and video rooms, though 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomSublist.tsx 59 HACK // HACK: We really shouldn't have to do this. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomSublist.tsx 86 TODO // TODO: Use re-resizer's NumberSize when it is exposed as the type 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomSublist.tsx 278 XXX // XXX: we have to do this a tick later because we have incorrect intermediate props during a room change 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomSublist.tsx 527 HACK // HACK: We break typing here, but this 'extra tiles' property shouldn't exist. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/RoomTile.tsx 298 TODO // TODO: [FTUE Notifications] Probably need to detect global mute state 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/Stickerpicker.tsx 78 TODO // TODO: Pick the right manager for the widget 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/Stickerpicker.tsx 242 TODO // TODO - Add support for Stickerpickers from multiple app stores. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/Stickerpicker.tsx 257 FIXME // FIXME: could this use the same code as other apps? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete.tsx 77 TODO // TODO determine if utils in SlashCommands.tsx are required. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete.tsx 98 TODO // TODO - handle "community" type 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/components/WysiwygAutocomplete.tsx 117 TODO // TODO - determine if we show all of the /command suggestions, there are some options in the 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/hooks/useInitialContent.ts 45 TODO // TODO local storage 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/hooks/usePlainTextListeners.ts 154 TODO // TODO use getKeyBindingsManager().getMessageComposerAction(event) like in useInputEventProcessor 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts 58 TODO // TODO insert mention - see SendMessageComposer 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/hooks/useWysiwygSendActionHandler.ts 60 TODO // TODO insert quote message - see SendMessageComposer 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts 71 TODO // TODO markdown support 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts 95 TODO // TODO Do we need to attach mentions here? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/createMessageContent.ts 96 TODO // TODO Handle editing? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 63 TODO // TODO thread 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 67 TODO // TODO thread 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 116 TODO // TODO replace emotion end of message ? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 118 TODO // TODO quick reaction 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 164 TODO // TODO save history 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 165 TODO // TODO save local state 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 198 TODO // TODO emoji 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/rooms/wysiwyg_composer/utils/message.ts 227 TODO // TODO Slash Commands 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/AddRemoveThreepids.tsx 93 XXX // XXX: Sydent will accept a number without country code if you add 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/AddRemoveThreepids.tsx 375 TODO // TODO: Inline field validation 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/ChangePassword.tsx 241 TODO // TODO: We can remove this check (but should add some Playwright tests to 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/Notifications.tsx 57 TODO // TODO: this "view" component still has far too much application logic in it, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/Notifications.tsx 341 XXX // XXX: Can this even happen? How do we safely recover? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/Notifications.tsx 481 XXX // XXX: Magic number 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/Notifications.tsx 489 XXX // XXX: Magic number 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/Notifications.tsx 602 XXX // XXX: Horrible assumption that we don't need the remaining fields 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/SetIdServer.tsx 44 XXX // XXX: duplicated logic from js-sdk but it's quite tied up in the validation logic in the 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/ThemeChoicePanel.tsx 125 XXX // XXX: The local echoed value appears to be unreliable, in particular 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/ThemeChoicePanel.tsx 251 XXX // XXX: need some schema for this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/room/BridgeSettingsTab.tsx 61 TODO // TODO: We don't have this link yet: this will prevent the translators 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/room/BridgeSettingsTab.tsx 83 TODO // TODO: We don't have this link yet: this will prevent the translators 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/room/NotificationSettingsTab.tsx 104 XXX // XXX: I've observed browsers allowing users to pick a audio/ogg files, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx 63 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx 274 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/user/AccountUserSettingsTab.tsx 151 TODO // TODO: Figure out a design that doesn't involve replacing the current dialog 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/settings/tabs/user/AccountUserSettingsTab.tsx 160 TODO // TODO: Figure out a design that doesn't involve replacing the current dialog 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/spaces/QuickThemeSwitcher.tsx 57 XXX // XXX: The local echoed value appears to be unreliable, in particular 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/components/views/spaces/SpacePanel.tsx 369 TODO aria-selected={false} // TODO 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/device-listener/DeviceListenerOtherDevices.ts 86 TODO // TODO: maybe we don't need a full DeviceListener check? (Maybe we only 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/device-listener/DeviceListenerOtherDevices.ts 121 TODO // TODO: maybe we don't need a full DeviceListener check? (Maybe we only 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/dispatcher/actions.ts 13 TODO // TODO: Populate with actual actions 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/dispatcher/payloads/OpenToTabPayload.ts 13 TODO action: Action.ViewUserSettings | string; // TODO: Add room settings action 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/effects/effect.ts 34 TODO * animation options TODO 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/emojipicker/recent.ts 28 TODO // TODO remove this after some time 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/events/EventTileFactory.tsx 138 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/events/EventTileFactory.tsx 227 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/events/EventTileFactory.tsx 427 XXX // XXX: this'll eventually be dynamic based on the fields once we have extensible event types 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/hooks/useSettings.ts 32 XXX // XXX: This seems naff but is needed to convince TypeScript that the overload is fine 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/hooks/useSettings.ts 41 XXX // XXX: This seems naff but is needed to convince TypeScript that the overload is fine 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/indexing/EventIndex.ts 500 TODO // TODO we need to ensure to use member lazy loading with this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/indexing/EventIndex.ts 580 TODO // TODO if there are no events at this point we're missing a lot 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/integrations/IntegrationManagers.ts 84 TODO // TODO: Log out of the scalar clients 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/mjolnir/Mjolnir.ts 22 TODO // TODO: Move this and related files to the js-sdk or something once finalized. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/rageshake/submit-rageshake.ts 155 XXX // XXX: This is synapse-specific but better than nothing until MSC support for a server version endpoint 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/rageshake/submit-rageshake.ts 170 XXX // XXX: This relies on the federation listener being delegated via well-known 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/resizer/resizer.ts 36 TODO // TODO move vertical/horizontal to config option/container class 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/SettingLevel.ts 13 TODO // TODO: [TS] Follow naming convention 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/Settings.tsx 165 XXX // XXX: Keep this around for re-use in future Betas 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/Settings.tsx 736 TODO // TODO: Wire up appropriately to UI (FTUE notifications) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/Settings.tsx 1274 TODO // TODO: Rename with settings v3 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/controllers/DeviceIsolationModeController.ts 36 TODO : // TODO: As part of https://github.com/element-hq/element-meta/issues/2492, we will change 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/controllers/NotificationControllers.ts 33 TODO // TODO: [TS] Formal type that doesn't cause a cyclical reference. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/enums/Layout.ts 10 TODO /* TODO: This should be later reworked into something more generic */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/handlers/AccountSettingsHandler.ts 224 TODO // TODO: [TS] Types on return 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/handlers/DeviceSettingsHandler.ts 105 TODO // TODO: [TS] Type return 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/handlers/DeviceSettingsHandler.ts 121 XXX // XXX: This turns they key names into `mx_labs_feature_feature_x` (double feature). 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/handlers/RoomAccountSettingsHandler.ts 148 TODO // TODO: [TS] Type return 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/watchers/ThemeWatcher.ts 74 XXX // XXX forceTheme 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/settings/watchers/ThemeWatcher.ts 79 XXX // XXX: forceTheme param added here as local echo appears to be unreliable 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/slash-commands/SlashCommands.tsx 678 XXX // XXX: We should be using a real member object and not assuming what the receiver wants. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/slash-commands/utils.ts 44 XXX // XXX: workaround for https://github.com/microsoft/TypeScript/issues/31816 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/ActiveWidgetStore.ts 52 XXX // XXX: This listens for state events in order to remove the active widget. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/ActiveWidgetStore.ts 56 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/CallStore.ts 149 XXX // XXX: This method is guarded with the flag this.inUpdateRoom because 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/MemberListStore.ts 112 XXX // XXX: this user may have no lastPresenceTs value! 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/OwnBeaconStore.ts 305 TODO // TODO check powerlevels here 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/ThreepidInviteStore.ts 22 TODO // TODO: Figure out if these are ever populated 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/WidgetStore.ts 35 TODO // TODO consolidate WidgetEchoStore into this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/WidgetStore.ts 36 TODO // TODO consolidate ActiveWidgetStore into this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/WidgetStore.ts 166 TODO if (ev.getType() !== "im.vector.modular.widgets") return; // TODO: Support m.widget too 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/message-preview/MessagePreviewStore.ts 263 TODO const event = payload.event; // TODO: Type out the dispatcher 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/message-preview/previews/MessageEventPreview.ts 39 XXX // XXX: Newer relations have a getRelation() function which is not compatible with replies. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/notifications/NotificationLevel.ts 15 TODO // TODO: Remove bold with notifications: https://github.com/vector-im/element-web/issues/14227 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/notifications/RoomNotificationStateStore.ts 71 TODO // TODO: Update if/when invites move out of the room list. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 83 TODO // TODO: Maybe destroy this if this class supports destruction 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 205 TODO const roomPayload = <any>payload; // TODO: Type out the dispatcher types 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 253 TODO const eventPayload = <any>payload; // TODO: Type out the dispatcher types 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 266 TODO const eventPayload = <any>payload; // TODO: Type out the dispatcher types 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 308 TODO // TODO: Type out the dispatcher types so membershipPayload is not any 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 405 TODO // TODO: Per-account? https://github.com/vector-im/element-web/issues/14114 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 415 TODO // TODO: Per-account? https://github.com/vector-im/element-web/issues/14114 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 444 TODO // TODO: Per-account? https://github.com/vector-im/element-web/issues/14114 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/RoomListStore.ts 454 TODO // TODO: Per-account? https://github.com/vector-im/element-web/issues/14114 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm.ts 253 XXX // XXX: If this ever actually gets more than one room passed to it, it'll need more index 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/algorithms/list-ordering/ImportanceAlgorithm.ts 295 TODO // TODO: Regenerate index when this happens: https://github.com/vector-im/element-web/issues/14234 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/algorithms/list-ordering/NaturalAlgorithm.ts 85 TODO // TODO: Optimize this to avoid useless operations: https://github.com/vector-im/element-web/issues/14457 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts 39 TODO // TODO: We could probably improve the sorting algorithm here by finding changes. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts 45 TODO // TODO: Don't assume we're using the same client as the peg 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/room-list/filters/SpaceFilterCondition.ts 55 XXX // XXX: Room List Store has a bug where updates to the pre-filter during a local echo of a 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/spaces/SpaceStore.ts 582 TODO // TODO consider sorting by number of in-refs to favour nodes with fewer parents. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/spaces/SpaceStore.ts 1054 TODO // TODO rebuild the space parent and not the room - check permissions? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/spaces/SpaceStore.ts 1055 TODO // TODO confirm this after implementing parenting behaviour 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/spaces/SpaceTreeLevelLayoutStore.ts 31 XXX // XXX: localStorage doesn't allow booleans 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/spaces/SpaceTreeLevelLayoutStore.ts 37 XXX // XXX: localStorage doesn't allow booleans 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/ElementWidgetDriver.ts 92 TODO // TODO: Consider alternative designs for matrix-widget-api? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/ElementWidgetDriver.ts 97 TODO // TODO: Refactor widgetKind into the Widget class 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/ElementWidgetDriver.ts 278 TODO // TODO: Do something when the widget requests new capabilities not yet asked for 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/ElementWidgetDriver.ts 295 TODO // TODO: this results in an unexpected behavior when this function is called during the capabilities renegotiation of MSC2974 that will be resolved later. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 66 TODO // TODO: Purge this code of its overgrown hacks and compatibility shims. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 68 TODO // TODO: Don't use this. We should avoid overriding/mocking matrix-widget-api 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 256 TODO // TODO: Replace these with proper widget params 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 263 TODO // TODO: Stop doing this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 400 TODO // TODO: Replace this event listener with appropriate driver functionality once the API 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 432 TODO // TODO: Spec this interaction. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 474 TODO // TODO: Pick the right manager for the widget 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 496 HACK // HACK: This is a really dirty way to ensure that Jitsi cleans up 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetMessaging.ts 512 XXX // XXX is the removeAllListeners necessary here? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/WidgetPermissionStore.ts 24 TODO // TODO (all functions here): Merge widgetKind with the widget definition 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/types.ts 32 TODO // TODO: [Deferred] Maximizing (fullscreen) widgets by default. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/stores/widgets/types.ts 40 TODO // TODO: [Deferred] Forced layout (fixed with no changes) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/DMRoomMap.ts 26 TODO // TODO: convert these to maps 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/DMRoomMap.ts 156 TODO // TODO: [Canonical DMs] Handle lookups for email addresses. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/FileDownloader.ts 48 XXX managedIframe.src = "usercontent/"; // XXX: Should come from the skin 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/FileDownloader.ts 54 TODO // TODO: If we decide to keep the download link behaviour, we should bring the style management into here. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/MediaEventHelper.ts 19 TODO // TODO: We should consider caching the blobs. https://github.com/vector-im/element-web/issues/17192 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/MessageDiffUtils.tsx 209 XXX // XXX: sometimes diffDOM says insert a newline when there shouldn't be one 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 78 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 82 TODO // TODO: Generify the name of this function. It's not just scalar. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 203 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 213 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 303 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 328 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 345 TODO // TODO: Enable support for m.widget event type (https://github.com/vector-im/element-web/issues/13111) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 448 TODO // TODO: Remove URL hacks when the mobile clients eventually support v2 widgets 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/WidgetUtils.ts 546 TODO // TODO: Pick the right manager for the widget 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/beacon/useBeacon.ts 26 TODO // TODO could this be less stupid? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/dm/startDm.ts 54 TODO // TODO: [Canonical DMs] Remove this check and instead just create the multi-person DM 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/exportUtils/HtmlExport.tsx 418 TODO // TODO: Handle callEvent errors 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/permalinks/MatrixSchemePermalinkConstructor.ts 53 TODO // TODO: Change API signature to accept the URL for checking 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/utils/permalinks/PermalinkConstructor.ts 11 TODO * TODO: Convert this to a real TypeScript interface 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/app.tsx 92 XXX // XXX: This lives here because certain components import so many things that importing it in a sensible place (eg. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/app.tsx 118 XXX // XXX: This path matching is a bit brittle, but better to do it early instead of in the app code. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/app.tsx 201 DEPRECATED "DEPRECATED CONFIG OPTION: In the future, default_hs_url will not be accepted. Please use " + 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/app.tsx 226 DEPRECATED "DEPRECATED CONFIG OPTION: In the future, default_server_name will not be accepted. Please " + 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/index.html 56 TODO <noscript>Sorry, Element requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? --> 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/init.tsx 54 XXX // XXX: We call this twice, once here and once in MatrixChat as a prop. We call it here to ensure 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/jitsi/index.html 13 TODO <!-- TODO: i18n --> 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/jitsi/index.pcss 8 TODO /* TODO: Match the user's theme: https://github.com/element-hq/element-web/issues/12794 */ 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/jitsi/index.ts 55 XXX // XXX: It is unclear whether this is a typo of TOOLBAR_BUTTONS or if its just really undocumented, 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/platform/IPCManager.ts 33 TODO // TODO this should be moved into the preload.js file. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/url_utils.ts 72 XXX // XXX: unclear where, if anywhere, this is set 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/vector/url_utils.ts 77 XXX // XXX: Fragment params seemingly relating to 3pid invites, though the code in the area doubts they are ever specified 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts 443 FIXME // FIXME: persist this somewhere smarter than local storage 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/viewmodels/message-body/UrlPreviewGroupViewModel.ts 456 FIXME // FIXME: persist this somewhere smarter than local storage 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/viewmodels/room/right-panel/WidgetContextMenuViewModel.tsx 201 XXX // XXX: won't i18n well, but looks like widget api only support 'message'? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/widgets/CapabilityText.tsx 131 TODO // TODO: Support MSC3819 (to-device capabilities) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/src/widgets/WidgetType.ts 9 TODO // TODO: Move to matrix-widget-api 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/setup/setupManualMocks.ts 47 TODO // TODO: Extract this to a function and have tests that need it opt into it. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/test-utils/test-utils.ts 56 TODO * TODO: once the components are updated to get their MatrixClients from 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/test-utils/utilities.ts 182 XXX // XXX: Maybe in the future with Jest 29.5.0+, we could use `runAllTimersAsync` instead. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/Lifecycle-test.ts 784 XXX // XXX: these tests are broken, Lifecycle.setLoggedIn does not work with OIDC and its token refreshers due to clearing storage 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/Notifier-test.ts 583 TODO // TODO: Once https://github.com/matrix-org/matrix-js-sdk/pull/5134 is merged this can be MembershipKind.Session 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx 199 TODO // TODO: nowadays the access token lives (encrypted) in indexedDB, and localstorage is only used as a fallback. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx 1250 XXX // XXX This test is strange, it was working with legacy crypto 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/structures/MatrixChat-test.tsx 1301 FIXME // FIXME: except it is *also* used as the permanent client for the rest of the test. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/structures/MessagePanel-test.tsx 104 HACK // HACK: We assume all settings want to be disabled 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/beacon/RoomCallBanner-test.tsx 152 TODO // TODO: test clicking buttons 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/beacon/RoomCallBanner-test.tsx 153 TODO // TODO: add live location share warning test (should not render if there is an active live location share) 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/context_menus/MessageContextMenu-test.tsx 729 XXX // XXX: We probably shouldn't be assuming all events are going to be message events, but considering this 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/dialogs/security/CreateSecretStorageDialog-test.tsx 90 XXX // XXX the error message is... misleading. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/rooms/EditMessageComposer-test.tsx 264 TODO // TODO Edits do not properly strip the double slash used to skip 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/rooms/wysiwyg_composer/hooks/useSuggestion-test.tsx 107 TODO // TODO refactor and expand tests when mentions become <a> tags 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/components/views/spaces/SpaceSettingsVisibilityTab-test.tsx 68 TODO // TODO case for canonical 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/models/Call-test.ts 844 TODO // TODO refactor initial device configuration to use the EW settings. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/slash-commands/utils.ts 29 TODO // TODO: if getCommand took a MatrixClient argument, we could use 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/stores/SpaceStore-test.ts 268 TODO // TODO this test should be failing right now 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/stores/SpaceStore-test.ts 620 XXX // XXX: All rooms space is forcibly enabled, as part of a future PR test Home space better 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/stores/SpaceStore-test.ts 681 XXX // XXX: All rooms space is forcibly enabled, as part of a future PR test Home space better 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/utils/MegolmExportEncryption-test.ts 123 TODO // TODO find a subtlecrypto shim which doesn't break this test 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web apps/web/test/unit-tests/utils/objects-test.ts 63 XXX // XXX: inverted expectation for ease of assertion 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web docs/config.md 145 DEPRECATED 11. `welcome_user_id`: **DEPRECATED** An optional user ID to start a DM with after creating an account. Defaults to nothing (no DM created). 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web docs/customisations.md 3 DEPRECATED ### 🦖 DEPRECATED 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web docs/deprecated-modules.md 4 DEPRECATED > DEPRECATED. Use [Element web module api](https://github.com/element-hq/element-modules/tree/main/packages/element-web-module-api) instead. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web docs/monorepo.md 30 TODO - #TODO should we just use short-lived release branches? We'd need to effectively interlace them for the various packages which feels messy 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web docs/native-node-modules.md 43 TODO - Linux: TODO. Using the docker environment as above is recommended. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web docs/native-node-modules.md 44 TODO - OS X: TODO 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web packages/shared-components/src/core/i18n/i18n.tsx 293 TODO // TODO: Cache regexps 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web packages/shared-components/src/room/timeline/event-tile/body/DecryptionFailureBodyView/DecryptionFailureBodyView.tsx 125 TODO // TODO: event should be hidden instead of showing this error. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web packages/shared-components/src/room/timeline/event-tile/body/DecryptionFailureBodyView/DecryptionFailureBodyView.tsx 138 TODO // TODO: event should be hidden instead of showing this error. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web packages/shared-components/src/room/timeline/event-tile/body/MFileBodyView/FileBodyView.tsx 263 TODO TODO: Move iframe (and dummy link) into FileDownloader. 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/analyse_unused_exports.ts 49 TODO // TODO: This might break on Windows 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/gen-workflow-mermaid.ts 223 TODO // TODO workflow_call reusables 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/gen-workflow-mermaid.ts 266 TODO // TODO should we be just dropping these? 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/gen-workflow-mermaid.ts 514 TODO // TODO separate disconnected nodes into their own graph 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/gen-workflow-mermaid.ts 551 TODO // TODO unsure about this edge 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/gen-workflow-mermaid.ts 557 TODO // TODO handle job.if on github.event_name 2026-05-10 91 3da363517 sorB
|
||||
ThreadNet-Web scripts/gen-workflow-mermaid.ts 604 TODO // TODO validate edge case 2026-05-10 91 3da363517 sorB
|
||||
axion1337.chat-gitops .devcontainer/devcontainer.json 47 TODO "TODO", 2026-05-14 87 4cf6702f8 Scrublord MacBad
|
||||
axion1337.chat-gitops .devcontainer/devcontainer.json 48 FIXME "FIXME", 2026-05-14 87 4cf6702f8 Scrublord MacBad
|
||||
axion1337.chat-gitops .devcontainer/devcontainer.json 50 HACK "HACK", 2026-05-14 87 4cf6702f8 Scrublord MacBad
|
||||
axion1337.chat-gitops .devcontainer/devcontainer.json 52 XXX "XXX", 2026-05-14 87 4cf6702f8 Scrublord MacBad
|
||||
axion1337.chat-gitops docs/oldwiki/home.md 2335 XXX age: "XXX" 2026-05-14 87 b1247b472 Scrublord MacBad
|
||||
threadnet-call .eslintrc.cjs 69 XXX // XXX: We use /lib in lots of places, so allow for now. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call knip.ts 17 TODO // installed binary. TODO We should switch to Compose v2: 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call playwright/access.spec.ts 109 XXX // XXX check the display names on the video tiles 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call playwright/widget/test-helpers.ts 76 XXX // XXX This using the notification toast to join the room. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call playwright/widget/test-helpers.ts 371 XXX // XXX we need to be better at our HTML markup and accessibility, it would make 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call sdk/index.html 7 TODO // TODO use the url where the matrixrtc-sdk.js file from dist is hosted 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call sdk/main.ts 45 TODO // TODO how can this get fixed? to just be part of `livekit-client` 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/Modal.module.css 95 TODO /* TODO: Support tabs */ 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/Modal.tsx 60 TODO // TODO: Better tabs support 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/auth/LoginPage.tsx 29 TODO const homeserver = Config.defaultHomeserverUrl(); // TODO: Make this configurable 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/auth/LoginPage.tsx 37 TODO // TODO: Handle hitting login page with authenticated client 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/auth/useInteractiveLogin.ts 56 XXX // XXX: This claims to return an IAuthData which contains none of these 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/auth/useInteractiveRegistration.ts 104 XXX // XXX: This claims to return an IAuthData which contains none of these 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/components/MediaMuteAndSwitchButton.stories.tsx 65 TODO // (both are TODO placeholders in the component). The mute button is first in the DOM. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/grid/SpotlightPortraitLayout.tsx 64 TODO // TODO: We pretend that the minimum height is the width, because the 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/home/useGroupCallRooms.ts 110 TODO // TODO: check JoinRule.Restricted and return true if join condition is satisfied 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/livekit/MatrixAudioRenderer.tsx 81 TODO // TODO make sure to also skip the warn logging for the local identity 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/livekit/TrackProcessorContext.tsx 33 TODO //TODO-MULTI-SFU: This is not yet fully there. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/livekit/openIDSFU.ts 150 DEPRECATED // DEPRECATED 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/reactions/ReactionsReader.ts 76 TODO // TODO: Convert this class to the functional reactive style and get rid of 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/reactions/ReactionsReader.ts 269 TODO // TODO refactor to use memer id `membershipEvent.membershipID` (needs to happen in combination with other memberId refactors) 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/reactions/index.ts 87 TODO // TODO: These need to be translated. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/CallEventAudioRenderer.test.tsx 173 TODO // TODO: What is this string supposed to be? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 8 TODO // TODO-MULTI-SFU: Restore or discard these tests. The role of GroupCallView has 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 92 TODO // // TODO: perhaps there is a more elegant way to manage the type import here? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 95 TODO // // TODO: leaveRTCSession no longer exists! Tests need adapting. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 176 TODO // TODO-MULTI-SFU: This cast isn't valid, it's likely the cause of some current test failures 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 188 TODO // TODO-MULTI-SFU: Make joined and setJoined work 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 464 XXX // XXX: Wrapping the following click in act() shouldn't be necessary (the 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.test.tsx 470 TODO // TODO investigate if this is a test setup issue or an actual problem. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.tsx 166 TODO // TODO move this into the callViewModel LocalMembership.ts 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.tsx 241 TODO // TODO-MULTI-SFU what to do with error handling now that we don't use this function? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.tsx 264 XXX // XXX: I think this is broken currently - LiveKit *won't* request 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.tsx 331 TODO // TODO refactor this + "joined" to just one callState 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/GroupCallView.tsx 336 TODO // TODO split this into leave and onDisconnect 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/InCallView.tsx 103 TODO // TODO refactor those reasons into an enum 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/InCallView.tsx 140 TODO // TODO move this somewhere else once we use the callViewModel in the lobby as well! 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/InCallView.tsx 224 TODO // TODO-MULTI-SFU This is unused now?? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/InCallView.tsx 230 TODO // TODO-MULTI-SFU decide how to handle this properly 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/InCallView.tsx 648 TODO // TODO compute is local or tag it in the livekit room items already 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/LobbyView.tsx 99 TODO // TODO: Make sure that this module is resilient when it comes to camera/microphone availability! 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/LobbyView.tsx 212 TODO // TODO: Unify this component with InCallView, so we can get slick joining 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/RoomPage.tsx 243 TODO // TODO: This doesn't belong here, the app routes need to be reworked 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/room/useRoomState.ts 25 TODO // TODO: matrix-js-sdk says that Room.currentState is deprecated, but it's not 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/settings/settings.ts 84 TODO // TODO: This setting can be disabled. Work out an approach to disableable 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/AndroidControlledAudioOutput.ts 142 TODO // TODO: it appears that on Android the hosting application is only using the deprecated callback (onOutputDeviceSelect) 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/AndroidControlledAudioOutput.ts 281 TODO // TODO only want to check from the added device, not all devices.? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/AppViewModel.ts 17 TODO // TODO: Move more application logic here. The CallViewModel, at the very 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 161 TODO //TODO 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 241 TODO * TODO: it seems more reasonable to add a leave() method (that calls requestDisconnect) that will then update leave$ and remove the hangup pattern 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 540 TODO // TODO. This might need to get called again on each change of matrixRTCMode... 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 614 TODO // TODO if we are in "unknown" state we need a loading rendering (or empty screen) 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 793 TODO // TODO: Respect io.element.functional_members 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 1300 TODO // TODO: Respect io.element.functional_members (while still 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/CallViewModel.ts 1303 TODO // TODO: Only hide name tags in DMs, not group chats that just 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.test.ts 534 TODO // TODO add an integration test combining publisher and localMembership 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.test.ts 683 TODO // TODO add tests for matrix local matrix participation. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 83 XXX // XXX: This state is removed for now since we do not have full control over 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 91 TODO // TODO not sure how to map that correctly with the 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 96 XXX // XXX: This state is removed for now since we do not have full control over 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 132 TODO // TODO add a comment into some code style readme or file header callviewmodel 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 304 XXX // XXX We might want to give some user feedback here to let them know their media is not working. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 635 TODO // TODO Update matrixRTCSession to allow udpating the transport without leaving the session! 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 659 TODO // TODO refactor this based no livekitState$ 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalMember.ts 889 TODO // TODO where/how do we track errors originating from the ongoing rtcSession? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalTransport.ts 77 TODO // TODO livekit_alias-cleanup 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/LocalTransport.ts 227 XXX // XXX: WORK AROUND due to a reconnection glitch. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/Publisher.ts 257 TODO // TODO what about screen share? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/localMember/RtcTransportAutoDiscovery.ts 93 TODO // TODO: Workaround for an issue in the js-sdk RoomWidgetClient that 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/Connection.test.ts 572 TODO // // TODO understand what is wrong with our mocking that requires ts-expect-error 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/Connection.test.ts 608 TODO // // TODO: Refactor the code to make it testable. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/Connection.ts 139 TODO // TODO: can we just keep the ConnectionOpts object instead of spreading? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/Connection.ts 193 TODO // TODO consider an autostart pattern... 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/ConnectionFactory.ts 43 TODO // TODO evaluate if this should be done like the Publisher Factory 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/ConnectionFactory.ts 190 TODO // TODO test and consider this: 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/ConnectionManager.ts 83 TODO // TODO - write test for scopes (do we really need to bind scope) 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/ConnectionManager.ts 117 TODO // TODO logger: only construct one logger from the client and make it compatible via a EC specific sing 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/ConnectionManager.ts 197 TODO // TODO: This whole optional SFUConfig parameter is not particularly elegant. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/ConnectionManager.ts 204 TODO // TODO subscribe to connection state to retry or log issues? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts 37 TODO // TODO decide if we can also drop the userId. Its in the matrix membership anyways. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts 142 TODO // TODO add back in the callviewmodel pauseWhen(this.pretendToBeDisconnected$) 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts 144 TODO // TODO add this to the JS-SDK 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/MatrixMemberMetadata.ts 81 TODO // TODO: do we need: pauseWhen(this.pretendToBeDisconnected$), 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/CallViewModel/remoteMembers/integration.test.ts 85 TODO //TODO a bit annoying to have to do a http mock? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/MuteStates.test.ts 82 TODO // TODO I'd expect it to go back to previous state (enabled) 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/MuteStates.test.ts 264 TODO // TODO I'd expect it to go back to previous state (enabled)?? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/MuteStates.ts 118 TODO // TODO: better error handling 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/MuteStates.ts 130 TODO // TODO: better error handling 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/state/media/MemberMediaViewModel.ts 44 TODO // TODO: Encryption status is kinda broken and thus unused right now. Remove? 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/tile/GridTile.tsx 370 TODO {/* TODO: Figure out how to make this slider keyboard accessible */} 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/tile/MediaView.tsx 191 TODO {/* TODO: Bring this back once encryption status is less broken */} 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/tile/TileAvatar.module.css 18 TODO /* TODO: make this --cpd-color-fg-primary when available. */ 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/useCallViewKeyboardShortcuts.ts 70 TODO // TODO: Make sure that this module is resilient when it comes to camera/microphone availability! 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call src/utils/matrix.ts 110 XXX // XXX: we read from the URL params in RoomPage too: 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
threadnet-call tsconfig.json 43 TODO // TODO: Enable the following options later. 2026-07-31 9 8fb630cfb Thore Cimbal
|
||||
|
Can't render this file because it contains an unexpected character in line 12 and column 89.
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,105 @@
|
||||
.devcontainer/Dockerfile
|
||||
.devcontainer/README.md
|
||||
.devcontainer/devcontainer.json
|
||||
.devcontainer/docker-init.sh
|
||||
.devcontainer/postCreateCommand.sh
|
||||
.gitignore
|
||||
.gitlab-ci.yml
|
||||
.sops.yaml
|
||||
CLAUDE.md
|
||||
README.md
|
||||
apps/authentik/authentik-backup-secret.yaml
|
||||
apps/authentik/authentik-backup.yaml
|
||||
apps/authentik/authentik-blueprints.yaml
|
||||
apps/authentik/authentik-secret.yaml
|
||||
apps/authentik/authentik.yaml
|
||||
apps/authentik/certificate.yaml
|
||||
apps/authentik/helm-repo.yaml
|
||||
apps/authentik/ingress.yaml
|
||||
apps/authentik/kustomization.yaml
|
||||
apps/authentik/namespace.yaml
|
||||
apps/authentik/networkpolicy.yaml
|
||||
apps/base/infra/cert-manager-repo.yaml
|
||||
apps/base/infra/cert-manager.yaml
|
||||
apps/base/infra/kustomization.yaml
|
||||
apps/base/infra/ns-cert-manager.yaml
|
||||
apps/base/infra/ns-matrix.yaml
|
||||
apps/base/matrix/ess-operator.yaml
|
||||
apps/base/matrix/ess-repo.yaml
|
||||
apps/monitoring/alloy-config.yaml
|
||||
apps/monitoring/alloy.yaml
|
||||
apps/monitoring/helm-repos.yaml
|
||||
apps/monitoring/kube-state-metrics.yaml
|
||||
apps/monitoring/kustomization.yaml
|
||||
apps/monitoring/namespace.yaml
|
||||
apps/production/apex-ingress.yaml
|
||||
apps/production/cert-issuer.yaml
|
||||
apps/production/clamav-http-scanner-Dockerfile
|
||||
apps/production/clamav-http-scanner.py
|
||||
apps/production/clamav-http-scanner.yaml
|
||||
apps/production/clamav-pvc.yaml
|
||||
apps/production/clamav.yaml
|
||||
apps/production/clamav_spam_checker.py
|
||||
apps/production/concierge-bot.py
|
||||
apps/production/concierge-bot.yaml
|
||||
apps/production/coturn-secret.yaml
|
||||
apps/production/coturn.yaml
|
||||
apps/production/custom-configs/element-values copy.yaml
|
||||
apps/production/custom-configs/element-values.yaml
|
||||
apps/production/custom-configs/mas-secret.yaml
|
||||
apps/production/custom-configs/synapse-values.yaml
|
||||
apps/production/draupnir-pvc.yaml
|
||||
apps/production/draupnir-secret.yaml
|
||||
apps/production/draupnir.yaml
|
||||
apps/production/element-server-suite.yaml
|
||||
apps/production/element-web-docs-configmap.yaml
|
||||
apps/production/element-web-docs-server.yaml
|
||||
apps/production/kustomization.yaml
|
||||
apps/production/matrix-certificates.yaml
|
||||
apps/production/matrix-postgres-auth.yaml
|
||||
apps/production/networkpolicy.yaml
|
||||
apps/production/synapse-backup-secret.yaml
|
||||
apps/production/synapse-backup.yaml
|
||||
apps/production/synapse-turn-secret.yaml
|
||||
apps/production/turn-secret-rotation-secret.yaml
|
||||
apps/production/turn-secret-rotation.yaml
|
||||
ci/lab-ca-chain.crt
|
||||
clusters/matrix/flux-system/authentik-sync.yaml
|
||||
clusters/matrix/flux-system/gotk-components.yaml
|
||||
clusters/matrix/flux-system/gotk-sync.yaml
|
||||
clusters/matrix/flux-system/infra-sync.yaml
|
||||
clusters/matrix/flux-system/kustomization.yaml
|
||||
clusters/matrix/flux-system/monitoring-sync.yaml
|
||||
clusters/matrix/flux-system/production-sync.yaml
|
||||
docs/TASKS.md
|
||||
docs/deployment-guides/01-turn-server-setup.md
|
||||
docs/deployment-guides/02-authentik-identity-provider.md
|
||||
docs/deployment-guides/03-monitoring-integration.md
|
||||
docs/deployment-guides/04-element-customization.md
|
||||
docs/deployment-guides/05-room-policies.md
|
||||
docs/deployment-guides/06-moderation-content-scanning.md
|
||||
docs/deployment-guides/07-host-maintenance-notifications.md
|
||||
docs/deployment-guides/08-concierge-gaeste-einladungen.md
|
||||
docs/deployment-guides/README.md
|
||||
docs/install.md
|
||||
docs/oldwiki/authentik.md
|
||||
docs/oldwiki/fix report mrtc.md
|
||||
docs/oldwiki/home.md
|
||||
docs/oldwiki/invitereg.md
|
||||
docs/ops-configmap-sync.md
|
||||
docs/setup/README-Element-Setup.md
|
||||
docs/setup/element-setup-linux.sh
|
||||
docs/setup/element-setup-macos.command
|
||||
docs/setup/element-setup-windows.cmd
|
||||
docs/troubleshooting/AUTHENTIK-CREATE-INVITATION-FLOW.md
|
||||
docs/troubleshooting/AUTHENTIK-FIX-TEMPLATE.md
|
||||
docs/troubleshooting/AUTHENTIK-INVITATION-FLOW-FIX.md
|
||||
docs/troubleshooting/DIAGNOSTIK-AUTHENTIK-FLOW.md
|
||||
docs/troubleshooting/README.md
|
||||
host-config/maintenance-notify/config.example
|
||||
host-config/maintenance-notify/maintenance-notify.service
|
||||
host-config/maintenance-notify/maintenance-notify.sh
|
||||
host-config/maintenance-notify/maintenance-notify.timer
|
||||
host-config/maintenance-notify/msmtprc.template
|
||||
scripts/hooks/pre-commit
|
||||
scripts/install-hooks.sh
|
||||
@@ -0,0 +1,44 @@
|
||||
.gitignore
|
||||
.gitlab-ci.yml
|
||||
.gitlab/issue_templates/Deploy-Übergabe.md
|
||||
CLAUDE.md
|
||||
README.md
|
||||
ci/lab-ca-chain.crt
|
||||
decisions/0001-gitlab-kanonisch-push-mirror.md
|
||||
decisions/0002-issues-und-management-ins-lab.md
|
||||
decisions/0003-cve-meldeweg-aggregiert.md
|
||||
decisions/0004-site-to-site-vpn-hetzner-lab.md
|
||||
decisions/0005-pm-framework-kanban.md
|
||||
decisions/0006-wikis-konsolidieren-docusaurus.md
|
||||
decisions/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md
|
||||
decisions/0008-agenten-sessions-root-aequivalent.md
|
||||
decisions/0009-commit-konventionen-und-historien-anonymisierung.md
|
||||
decisions/README.md
|
||||
decisions/template.md
|
||||
hosts/cfgmon.md
|
||||
hosts/game.md
|
||||
hosts/matrix.md
|
||||
hosts/overmind.md
|
||||
roadmap.md
|
||||
scripts/stillstandspruefung.py
|
||||
shared/branding.md
|
||||
shared/commit-zuordnung-2026-08-07.md
|
||||
shared/lab-netzwerk.md
|
||||
shared/zone-axion1337.md
|
||||
verfahren/README.md
|
||||
verfahren/aar-vorlage.md
|
||||
verfahren/aar/2026-08-01-cve-pipeline-gitops47.md
|
||||
verfahren/aar/2026-08-01-labnet02-cfgmon.md
|
||||
verfahren/aar/2026-08-01-labnet02-lab.md
|
||||
verfahren/aar/2026-08-02-wiki-und-desktop-clients.md
|
||||
verfahren/aar/2026-08-09-refinement-und-betrieb.md
|
||||
verfahren/deploy-uebergabe.md
|
||||
verfahren/issue-migration/README.md
|
||||
verfahren/issue-migration/migrate.py
|
||||
verfahren/refinement.md
|
||||
verfahren/retro/2026-08-09.md
|
||||
verfahren/stillstandspruefung.md
|
||||
verfahren/textbloecke.md
|
||||
vision/axion1337-chat.md
|
||||
vision/homelab.md
|
||||
vision/threadnet.md
|
||||
@@ -0,0 +1,4 @@
|
||||
.gitignore
|
||||
README.md
|
||||
backup/gitea-backup.sh
|
||||
docker-compose.yml
|
||||
@@ -0,0 +1,598 @@
|
||||
.dockerignore
|
||||
.env.example
|
||||
.env.production
|
||||
.eslintrc.cjs
|
||||
.githooks/pre-commit
|
||||
.github/CODEOWNERS
|
||||
.github/ISSUE_TEMPLATE/bug.yml
|
||||
.github/ISSUE_TEMPLATE/config.yml
|
||||
.github/ISSUE_TEMPLATE/enhancement.yml
|
||||
.github/PULL_REQUEST_TEMPLATE.md
|
||||
.github/release.yml
|
||||
.github/workflows/blocked.yaml
|
||||
.github/workflows/build-and-publish-docker.yaml
|
||||
.github/workflows/build-element-call.yaml
|
||||
.github/workflows/build.yaml
|
||||
.github/workflows/changelog-label.yml
|
||||
.github/workflows/deploy-to-netlify.yaml
|
||||
.github/workflows/lint.yaml
|
||||
.github/workflows/pr-deploy.yaml
|
||||
.github/workflows/publish-embedded-packages.yaml
|
||||
.github/workflows/publish.yaml
|
||||
.github/workflows/test-netlify.yaml
|
||||
.github/workflows/test.yaml
|
||||
.github/workflows/translations-download.yaml
|
||||
.github/workflows/translations-upload.yaml
|
||||
.github/workflows/zizmor.yml
|
||||
.gitignore
|
||||
.gitlab-ci.yml
|
||||
.node-version
|
||||
.postcssrc.json
|
||||
.prettierignore
|
||||
.prettierrc.json
|
||||
.storybook/main.ts
|
||||
.storybook/manager.ts
|
||||
.storybook/preview.tsx
|
||||
.vscode/settings.json
|
||||
CONTRIBUTING.md
|
||||
Dockerfile
|
||||
LICENSE-AGPL-3.0
|
||||
LICENSE-COMMERCIAL
|
||||
README.md
|
||||
WIDGET_TEST.md
|
||||
babel.config.cjs
|
||||
backend/dev_homeserver-othersite.yaml
|
||||
backend/dev_homeserver.yaml
|
||||
backend/dev_livekit-othersite.yaml
|
||||
backend/dev_livekit.yaml
|
||||
backend/dev_nginx.conf
|
||||
backend/dev_tls_local-ca.crt
|
||||
backend/dev_tls_local-ca.key
|
||||
backend/dev_tls_m.localhost.crt
|
||||
backend/dev_tls_m.localhost.key
|
||||
backend/dev_tls_setup
|
||||
backend/ew.test.config.json
|
||||
backend/ew.test.othersite.config.json
|
||||
backend/playwright_homeserver-othersite.yaml
|
||||
backend/playwright_homeserver.yaml
|
||||
codecov.yaml
|
||||
config/config.devenv.json
|
||||
config/config.sample.json
|
||||
config/config_netlify_preview.json
|
||||
config/config_netlify_preview_sdk.json
|
||||
config/httpd.conf
|
||||
config/netlify_redirects
|
||||
config/nginx.conf
|
||||
config/otel_dev/README.md
|
||||
config/otel_dev/collector-gateway.yaml
|
||||
config/otel_dev/docker-compose.yaml
|
||||
config/otel_dev/nginx_otel.conf
|
||||
demo.gif
|
||||
dev-backend-docker-compose.yml
|
||||
docs/Federated_Setup.drawio.png
|
||||
docs/MSC4195_setup.drawio.png
|
||||
docs/README.md
|
||||
docs/SFU_selection.drawio.png
|
||||
docs/_developer.md
|
||||
docs/axion1337-fork.md
|
||||
docs/controls.md
|
||||
docs/element_call_standalone.drawio.png
|
||||
docs/element_call_widget.drawio.png
|
||||
docs/embedded_package.drawio.png
|
||||
docs/embedded_standalone.md
|
||||
docs/full_package.drawio.png
|
||||
docs/linking.md
|
||||
docs/linking_concept_reasoning.md
|
||||
docs/self_hosting.md
|
||||
docs/url_params.md
|
||||
embedded/android/.gitattributes
|
||||
embedded/android/.gitignore
|
||||
embedded/android/gradle.properties
|
||||
embedded/android/gradle/libs.versions.toml
|
||||
embedded/android/gradle/wrapper/gradle-wrapper.jar
|
||||
embedded/android/gradle/wrapper/gradle-wrapper.properties
|
||||
embedded/android/gradlew
|
||||
embedded/android/gradlew.bat
|
||||
embedded/android/lib/build.gradle.kts
|
||||
embedded/android/lib/src/main/kotlin/io/element/android/call/embedded/Version.kt
|
||||
embedded/android/publish_android_package.sh
|
||||
embedded/android/settings.gradle
|
||||
embedded/ios/.gitignore
|
||||
embedded/ios/LICENSE-AGPL-3.0
|
||||
embedded/ios/LICENSE-COMMMERCIAL
|
||||
embedded/ios/Package.swift
|
||||
embedded/ios/README.md
|
||||
embedded/ios/Sources/EmbeddedElementCall/EmbeddedElementCall.swift
|
||||
embedded/web/LICENSE-AGPL-3.0
|
||||
embedded/web/LICENSE-COMMERCIAL
|
||||
embedded/web/README.md
|
||||
embedded/web/package.json
|
||||
i18next.config.ts
|
||||
index.html
|
||||
knip.ts
|
||||
localazy.json
|
||||
locales/bg/app.json
|
||||
locales/cs/app.json
|
||||
locales/da/app.json
|
||||
locales/de/app.json
|
||||
locales/el/app.json
|
||||
locales/en/app.json
|
||||
locales/es/app.json
|
||||
locales/et/app.json
|
||||
locales/fa/app.json
|
||||
locales/fi/app.json
|
||||
locales/fr/app.json
|
||||
locales/id/app.json
|
||||
locales/it/app.json
|
||||
locales/ja/app.json
|
||||
locales/lv/app.json
|
||||
locales/nl/app.json
|
||||
locales/pl/app.json
|
||||
locales/ro/app.json
|
||||
locales/ru/app.json
|
||||
locales/sk/app.json
|
||||
locales/sv/app.json
|
||||
locales/tr/app.json
|
||||
locales/uk/app.json
|
||||
locales/vi/app.json
|
||||
locales/zh-Hans/app.json
|
||||
locales/zh-Hant/app.json
|
||||
package.json
|
||||
playwright-backend-docker-compose.override.yml
|
||||
playwright-backend-docker-compose.yml
|
||||
playwright.config.ts
|
||||
playwright/access.spec.ts
|
||||
playwright/create-call.spec.ts
|
||||
playwright/errors.spec.ts
|
||||
playwright/fixtures/fixture-mobile-create.ts
|
||||
playwright/fixtures/jwt-token.ts
|
||||
playwright/fixtures/widget-user.ts
|
||||
playwright/global.d.ts
|
||||
playwright/landing.spec.ts
|
||||
playwright/mobile/create-call-mobile.spec.ts
|
||||
playwright/reconnect.spec.ts
|
||||
playwright/restricted-sfu.spec.ts
|
||||
playwright/sfu-reconnect-bug.spec.ts
|
||||
playwright/spa-call-sticky.spec.ts
|
||||
playwright/spa-helpers.ts
|
||||
playwright/utils/synapse-admin.ts
|
||||
playwright/widget/federated-call.test.ts
|
||||
playwright/widget/federation-oldest-membership-bug.spec.ts
|
||||
playwright/widget/hotswap-legacy-compat.test.ts
|
||||
playwright/widget/huddle-call.test.ts
|
||||
playwright/widget/pip-call-button-interaction.test.ts
|
||||
playwright/widget/pip-call.test.ts
|
||||
playwright/widget/screen-share.test.ts
|
||||
playwright/widget/simple-create.spec.ts
|
||||
playwright/widget/test-helpers.ts
|
||||
playwright/widget/voice-call-dm.spec.ts
|
||||
pnpm-lock.yaml
|
||||
pnpm-workspace.yaml
|
||||
public/favicon.png
|
||||
renovate.json
|
||||
scripts/.pnpmfile.cjs
|
||||
scripts/dockerbuild.sh
|
||||
scripts/playwright-webserver-command.sh
|
||||
scripts/reformat-release-notes.py
|
||||
scripts/setup-linking.sh
|
||||
sdk/README.md
|
||||
sdk/helper.ts
|
||||
sdk/index.html
|
||||
sdk/main.ts
|
||||
src/@types/dom-mediacapture-transform.d.ts
|
||||
src/@types/global.d.ts
|
||||
src/@types/i18next.d.ts
|
||||
src/@types/matrix-js-sdk.d.ts
|
||||
src/@types/mdx.d.ts
|
||||
src/@types/modules.d.ts
|
||||
src/App.tsx
|
||||
src/AppBar.module.css
|
||||
src/AppBar.test.tsx
|
||||
src/AppBar.tsx
|
||||
src/Avatar.test.tsx
|
||||
src/Avatar.tsx
|
||||
src/ClientContext.tsx
|
||||
src/DisconnectedBanner.module.css
|
||||
src/DisconnectedBanner.tsx
|
||||
src/ErrorView.module.css
|
||||
src/ErrorView.tsx
|
||||
src/FullScreenView.module.css
|
||||
src/FullScreenView.tsx
|
||||
src/Header.module.css
|
||||
src/Header.test.tsx
|
||||
src/Header.tsx
|
||||
src/IndexedDBWorker.ts
|
||||
src/LazyEventEmitter.ts
|
||||
src/MediaDevicesContext.ts
|
||||
src/Modal.module.css
|
||||
src/Modal.test.tsx
|
||||
src/Modal.tsx
|
||||
src/Overlay.module.css
|
||||
src/Platform.ts
|
||||
src/QrCode.module.css
|
||||
src/QrCode.test.tsx
|
||||
src/QrCode.tsx
|
||||
src/RTCConnectionStats.module.css
|
||||
src/RTCConnectionStats.tsx
|
||||
src/RichError.tsx
|
||||
src/Slider.module.css
|
||||
src/Slider.tsx
|
||||
src/Toast.module.css
|
||||
src/Toast.test.tsx
|
||||
src/Toast.tsx
|
||||
src/TranslatedError.ts
|
||||
src/UrlParams.test.ts
|
||||
src/UrlParams.ts
|
||||
src/UserMenu.module.css
|
||||
src/UserMenu.tsx
|
||||
src/UserMenuContainer.tsx
|
||||
src/__snapshots__/AppBar.test.tsx.snap
|
||||
src/__snapshots__/Modal.test.tsx.snap
|
||||
src/__snapshots__/QrCode.test.tsx.snap
|
||||
src/__snapshots__/Toast-test.tsx.snap
|
||||
src/__snapshots__/Toast.test.tsx.snap
|
||||
src/analytics/AnalyticsNotice.tsx
|
||||
src/analytics/PosthogAnalytics.test.ts
|
||||
src/analytics/PosthogAnalytics.ts
|
||||
src/analytics/PosthogEvents.test.ts
|
||||
src/analytics/PosthogEvents.ts
|
||||
src/auth/LoginPage.module.css
|
||||
src/auth/LoginPage.tsx
|
||||
src/auth/RegisterPage.tsx
|
||||
src/auth/generateRandomName.ts
|
||||
src/auth/useInteractiveLogin.ts
|
||||
src/auth/useInteractiveRegistration.ts
|
||||
src/auth/useRecaptcha.ts
|
||||
src/auth/useRegisterPasswordlessUser.ts
|
||||
src/button/Button.module.css
|
||||
src/button/Button.test.tsx
|
||||
src/button/Button.tsx
|
||||
src/button/InviteButton.tsx
|
||||
src/button/Link.module.css
|
||||
src/button/Link.tsx
|
||||
src/button/LinkButton.tsx
|
||||
src/button/ReactionToggleButton.module.css
|
||||
src/button/ReactionToggleButton.test.tsx
|
||||
src/button/ReactionToggleButton.tsx
|
||||
src/button/__snapshots__/ReactionToggleButton.test.tsx.snap
|
||||
src/button/index.ts
|
||||
src/components/CallFooter.mdx
|
||||
src/components/CallFooter.module.css
|
||||
src/components/CallFooter.stories.tsx
|
||||
src/components/CallFooter.tsx
|
||||
src/components/CallFooterViewModel.test.ts
|
||||
src/components/CallFooterViewModel.tsx
|
||||
src/components/MediaMuteAndSwitchButton.module.css
|
||||
src/components/MediaMuteAndSwitchButton.stories.tsx
|
||||
src/components/MediaMuteAndSwitchButton.test.tsx
|
||||
src/components/MediaMuteAndSwitchButton.tsx
|
||||
src/components/__snapshots__/MediaMuteAndSwitchButton.test.tsx.snap
|
||||
src/config/Config.test.ts
|
||||
src/config/Config.ts
|
||||
src/config/ConfigOptions.ts
|
||||
src/controls.ts
|
||||
src/e2ee/e2eeType.ts
|
||||
src/e2ee/matrixKeyProvider.test.ts
|
||||
src/e2ee/matrixKeyProvider.ts
|
||||
src/e2ee/sharedKeyManagement.ts
|
||||
src/form/Form.module.css
|
||||
src/form/Form.tsx
|
||||
src/graphics/backgroundGradient.svg
|
||||
src/graphics/loggedOutGradient.svg
|
||||
src/grid/CallLayout.ts
|
||||
src/grid/Grid.module.css
|
||||
src/grid/Grid.tsx
|
||||
src/grid/GridLayout.module.css
|
||||
src/grid/GridLayout.tsx
|
||||
src/grid/OneOnOneLandscapeLayout.module.css
|
||||
src/grid/OneOnOneLandscapeLayout.tsx
|
||||
src/grid/OneOnOnePortraitLayout.module.css
|
||||
src/grid/OneOnOnePortraitLayout.tsx
|
||||
src/grid/SpotlightExpandedLayout.module.css
|
||||
src/grid/SpotlightExpandedLayout.tsx
|
||||
src/grid/SpotlightLandscapeLayout.module.css
|
||||
src/grid/SpotlightLandscapeLayout.tsx
|
||||
src/grid/SpotlightPortraitLayout.module.css
|
||||
src/grid/SpotlightPortraitLayout.tsx
|
||||
src/grid/TileWrapper.module.css
|
||||
src/grid/TileWrapper.tsx
|
||||
src/home/CallList.module.css
|
||||
src/home/CallList.test.tsx
|
||||
src/home/CallList.tsx
|
||||
src/home/HomePage.tsx
|
||||
src/home/JoinExistingCallModal.module.css
|
||||
src/home/JoinExistingCallModal.tsx
|
||||
src/home/RegisteredView.module.css
|
||||
src/home/RegisteredView.tsx
|
||||
src/home/UnauthenticatedView.module.css
|
||||
src/home/UnauthenticatedView.tsx
|
||||
src/home/common.module.css
|
||||
src/home/useGroupCallRooms.ts
|
||||
src/icons/Check.svg
|
||||
src/icons/Chevron.svg
|
||||
src/icons/Close.svg
|
||||
src/icons/FullScreenMaximise.svg
|
||||
src/icons/FullScreenMinimise.svg
|
||||
src/icons/LockOff.svg
|
||||
src/icons/Login.svg
|
||||
src/icons/Logo.svg
|
||||
src/icons/LogoLarge.svg
|
||||
src/icons/LogoMark.svg
|
||||
src/icons/LogoType.svg
|
||||
src/icons/Logout.svg
|
||||
src/icons/Settings.svg
|
||||
src/icons/StarSelected.svg
|
||||
src/icons/StarUnselected.svg
|
||||
src/icons/User.svg
|
||||
src/index.css
|
||||
src/initializer.test.ts
|
||||
src/initializer.tsx
|
||||
src/input/AvatarInputField.module.css
|
||||
src/input/AvatarInputField.tsx
|
||||
src/input/FeedbackInput.module.css
|
||||
src/input/Input.module.css
|
||||
src/input/Input.tsx
|
||||
src/input/StarRating.test.tsx
|
||||
src/input/StarRatingInput.module.css
|
||||
src/input/StarRatingInput.stories.tsx
|
||||
src/input/StarRatingInput.tsx
|
||||
src/livekit/BlurBackgroundTransformer.ts
|
||||
src/livekit/MatrixAudioRenderer.test.tsx
|
||||
src/livekit/MatrixAudioRenderer.tsx
|
||||
src/livekit/TrackProcessorContext.tsx
|
||||
src/livekit/openIDSFU.test.ts
|
||||
src/livekit/openIDSFU.ts
|
||||
src/livekit/options.test.ts
|
||||
src/livekit/options.ts
|
||||
src/main.tsx
|
||||
src/mediapipe/imageSegmenter/README.md
|
||||
src/mediapipe/imageSegmenter/selfie_segmenter.tflite
|
||||
src/profile/useProfile.ts
|
||||
src/reactions/RaisedHandIndicator.test.tsx
|
||||
src/reactions/RaisedHandIndicator.tsx
|
||||
src/reactions/ReactionIndicator.module.css
|
||||
src/reactions/ReactionIndicator.tsx
|
||||
src/reactions/ReactionsReader.test.tsx
|
||||
src/reactions/ReactionsReader.ts
|
||||
src/reactions/__snapshots__/RaisedHandIndicator.test.tsx.snap
|
||||
src/reactions/index.ts
|
||||
src/reactions/useReactionsSender.tsx
|
||||
src/room/CallEndedView.module.css
|
||||
src/room/CallEndedView.tsx
|
||||
src/room/CallEventAudioRenderer.test.tsx
|
||||
src/room/CallEventAudioRenderer.tsx
|
||||
src/room/EarpieceOverlay.module.css
|
||||
src/room/EarpieceOverlay.tsx
|
||||
src/room/EncryptionLock.module.css
|
||||
src/room/EncryptionLock.tsx
|
||||
src/room/GroupCallErrorBoundary.test.tsx
|
||||
src/room/GroupCallErrorBoundary.tsx
|
||||
src/room/GroupCallView.test.tsx
|
||||
src/room/GroupCallView.tsx
|
||||
src/room/InCallView.module.css
|
||||
src/room/InCallView.test.tsx
|
||||
src/room/InCallView.tsx
|
||||
src/room/InviteModal.module.css
|
||||
src/room/InviteModal.test.tsx
|
||||
src/room/InviteModal.tsx
|
||||
src/room/LobbyView.module.css
|
||||
src/room/LobbyView.test.tsx
|
||||
src/room/LobbyView.tsx
|
||||
src/room/RageshakeRequestModal.tsx
|
||||
src/room/ReactionAudioRenderer.test.tsx
|
||||
src/room/ReactionAudioRenderer.tsx
|
||||
src/room/ReactionsOverlay.module.css
|
||||
src/room/ReactionsOverlay.test.tsx
|
||||
src/room/ReactionsOverlay.tsx
|
||||
src/room/RoomAuthView.module.css
|
||||
src/room/RoomAuthView.tsx
|
||||
src/room/RoomPage.tsx
|
||||
src/room/VideoPreview.module.css
|
||||
src/room/VideoPreview.test.tsx
|
||||
src/room/VideoPreview.tsx
|
||||
src/room/__snapshots__/GroupCallErrorBoundary.test.tsx.snap
|
||||
src/room/__snapshots__/InCallView.test.tsx.snap
|
||||
src/room/__snapshots__/LobbyView.test.tsx.snap
|
||||
src/room/useJoinRule.ts
|
||||
src/room/useLoadGroupCall.ts
|
||||
src/room/useRoomAvatar.ts
|
||||
src/room/useRoomName.ts
|
||||
src/room/useRoomState.ts
|
||||
src/settings/DeveloperSettingsTab.module.css
|
||||
src/settings/DeveloperSettingsTab.test.tsx
|
||||
src/settings/DeveloperSettingsTab.tsx
|
||||
src/settings/DeviceSelection.module.css
|
||||
src/settings/DeviceSelection.tsx
|
||||
src/settings/FeedbackSettingsTab.tsx
|
||||
src/settings/MediaQualitySettings.tsx
|
||||
src/settings/PreferencesSettingsTab.tsx
|
||||
src/settings/ProfileSettingsTab.module.css
|
||||
src/settings/ProfileSettingsTab.tsx
|
||||
src/settings/RageshakeButton.module.css
|
||||
src/settings/RageshakeButton.tsx
|
||||
src/settings/SettingsModal.module.css
|
||||
src/settings/SettingsModal.tsx
|
||||
src/settings/__snapshots__/DeveloperSettingsTab.test.tsx.snap
|
||||
src/settings/rageshake.test.ts
|
||||
src/settings/rageshake.ts
|
||||
src/settings/settings.test.ts
|
||||
src/settings/settings.ts
|
||||
src/settings/submit-rageshake.test.ts
|
||||
src/settings/submit-rageshake.ts
|
||||
src/settings/useSubmitRageshake.test.tsx
|
||||
src/sound/LICENCE.md
|
||||
src/sound/call_declined.mp3
|
||||
src/sound/call_declined.ogg
|
||||
src/sound/call_timeout.mp3
|
||||
src/sound/call_timeout.ogg
|
||||
src/sound/end_talk.mp3
|
||||
src/sound/end_talk.ogg
|
||||
src/sound/join_call.mp3
|
||||
src/sound/join_call.ogg
|
||||
src/sound/left_call.mp3
|
||||
src/sound/left_call.ogg
|
||||
src/sound/raise_hand.mp3
|
||||
src/sound/raise_hand.ogg
|
||||
src/sound/reactions/baduntss.mp3
|
||||
src/sound/reactions/baduntss.ogg
|
||||
src/sound/reactions/cat.mp3
|
||||
src/sound/reactions/cat.ogg
|
||||
src/sound/reactions/clap.mp3
|
||||
src/sound/reactions/clap.ogg
|
||||
src/sound/reactions/crickets.mp3
|
||||
src/sound/reactions/crickets.ogg
|
||||
src/sound/reactions/deer.mp3
|
||||
src/sound/reactions/deer.ogg
|
||||
src/sound/reactions/dog.mp3
|
||||
src/sound/reactions/dog.ogg
|
||||
src/sound/reactions/generic.mp3
|
||||
src/sound/reactions/generic.ogg
|
||||
src/sound/reactions/lightbulb.mp3
|
||||
src/sound/reactions/lightbulb.ogg
|
||||
src/sound/reactions/party.mp3
|
||||
src/sound/reactions/party.ogg
|
||||
src/sound/reactions/rock.mp3
|
||||
src/sound/reactions/rock.ogg
|
||||
src/sound/reactions/wave.mp3
|
||||
src/sound/reactions/wave.ogg
|
||||
src/sound/ringtone.mp3
|
||||
src/sound/ringtone.ogg
|
||||
src/sound/screen_share_started.mp3
|
||||
src/sound/screen_share_started.ogg
|
||||
src/sound/start_talk_local.mp3
|
||||
src/sound/start_talk_local.ogg
|
||||
src/sound/start_talk_remote.mp3
|
||||
src/sound/start_talk_remote.ogg
|
||||
src/soundUtils.ts
|
||||
src/state/AndroidControlledAudioOutput.test.ts
|
||||
src/state/AndroidControlledAudioOutput.ts
|
||||
src/state/AppViewModel.ts
|
||||
src/state/AudioOutput.test.ts
|
||||
src/state/Behavior.ts
|
||||
src/state/CallViewModel/CallNotificationLifecycle.test.ts
|
||||
src/state/CallViewModel/CallNotificationLifecycle.ts
|
||||
src/state/CallViewModel/CallViewModel.test.ts
|
||||
src/state/CallViewModel/CallViewModel.ts
|
||||
src/state/CallViewModel/CallViewModelTestUtils.ts
|
||||
src/state/CallViewModel/LayoutSwitch.test.ts
|
||||
src/state/CallViewModel/LayoutSwitch.ts
|
||||
src/state/CallViewModel/localMember/HomeserverConnected.test.ts
|
||||
src/state/CallViewModel/localMember/HomeserverConnected.ts
|
||||
src/state/CallViewModel/localMember/LocalMember.test.ts
|
||||
src/state/CallViewModel/localMember/LocalMember.ts
|
||||
src/state/CallViewModel/localMember/LocalTransport.test.ts
|
||||
src/state/CallViewModel/localMember/LocalTransport.ts
|
||||
src/state/CallViewModel/localMember/Publisher.test.ts
|
||||
src/state/CallViewModel/localMember/Publisher.ts
|
||||
src/state/CallViewModel/localMember/RtcTransportAutoDiscovery.test.ts
|
||||
src/state/CallViewModel/localMember/RtcTransportAutoDiscovery.ts
|
||||
src/state/CallViewModel/remoteMembers/Connection.test.ts
|
||||
src/state/CallViewModel/remoteMembers/Connection.ts
|
||||
src/state/CallViewModel/remoteMembers/ConnectionFactory.ts
|
||||
src/state/CallViewModel/remoteMembers/ConnectionManager.test.ts
|
||||
src/state/CallViewModel/remoteMembers/ConnectionManager.ts
|
||||
src/state/CallViewModel/remoteMembers/ECConnectionFactory.test.ts
|
||||
src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.test.ts
|
||||
src/state/CallViewModel/remoteMembers/MatrixLivekitMembers.ts
|
||||
src/state/CallViewModel/remoteMembers/MatrixMemberMetadata.test.ts
|
||||
src/state/CallViewModel/remoteMembers/MatrixMemberMetadata.ts
|
||||
src/state/CallViewModel/remoteMembers/integration.test.ts
|
||||
src/state/CallViewModelWidget.test.ts
|
||||
src/state/GridLikeLayout.ts
|
||||
src/state/IOSControlledAudioOutput.ts
|
||||
src/state/MediaDevices.ts
|
||||
src/state/MuteAllAudioModel.test.ts
|
||||
src/state/MuteAllAudioModel.ts
|
||||
src/state/MuteStates.test.ts
|
||||
src/state/MuteStates.ts
|
||||
src/state/ObservableScope.test.ts
|
||||
src/state/ObservableScope.ts
|
||||
src/state/OneOnOneLandscapeLayout.ts
|
||||
src/state/OneOnOnePortraitLayout.ts
|
||||
src/state/PipLayout.ts
|
||||
src/state/SessionBehaviors.ts
|
||||
src/state/SpotlightExpandedLayout.ts
|
||||
src/state/TileStore.ts
|
||||
src/state/TileViewModel.ts
|
||||
src/state/ViewModel.ts
|
||||
src/state/VolumeControls.ts
|
||||
src/state/initialMuteState.test.ts
|
||||
src/state/initialMuteState.ts
|
||||
src/state/layout-types.ts
|
||||
src/state/media/LocalScreenShareViewModel.ts
|
||||
src/state/media/LocalUserMediaViewModel.ts
|
||||
src/state/media/MediaViewModel.test.ts
|
||||
src/state/media/MediaViewModel.ts
|
||||
src/state/media/MemberMediaViewModel.ts
|
||||
src/state/media/RemoteScreenShareViewModel.ts
|
||||
src/state/media/RemoteUserMediaViewModel.ts
|
||||
src/state/media/RingingMediaViewModel.ts
|
||||
src/state/media/ScreenShareViewModel.ts
|
||||
src/state/media/UserMediaViewModel.ts
|
||||
src/state/media/WrappedUserMediaViewModel.ts
|
||||
src/state/media/observeRtpStreamStats.ts
|
||||
src/state/media/observeSpeaker.test.ts
|
||||
src/state/media/observeSpeaker.ts
|
||||
src/state/observeTrackReference.ts
|
||||
src/tabs/Tabs.module.css
|
||||
src/tabs/Tabs.tsx
|
||||
src/tile/GridTile.module.css
|
||||
src/tile/GridTile.test.tsx
|
||||
src/tile/GridTile.tsx
|
||||
src/tile/MediaView.module.css
|
||||
src/tile/MediaView.test.tsx
|
||||
src/tile/MediaView.tsx
|
||||
src/tile/SpotlightTile.module.css
|
||||
src/tile/SpotlightTile.test.tsx
|
||||
src/tile/SpotlightTile.tsx
|
||||
src/tile/TileAvatar.module.css
|
||||
src/tile/TileAvatar.test.tsx
|
||||
src/tile/TileAvatar.tsx
|
||||
src/useAudioContext.test.tsx
|
||||
src/useAudioContext.tsx
|
||||
src/useBehavior.ts
|
||||
src/useCallViewKeyboardShortcuts.test.tsx
|
||||
src/useCallViewKeyboardShortcuts.ts
|
||||
src/useEvents.test.tsx
|
||||
src/useEvents.ts
|
||||
src/useInitial.ts
|
||||
src/useLatest.ts
|
||||
src/useLocalStorage.test.tsx
|
||||
src/useLocalStorage.ts
|
||||
src/useMatrixRTCSessionMemberships.ts
|
||||
src/useMediaQuery.ts
|
||||
src/useMergedRefs.ts
|
||||
src/usePageTitle.ts
|
||||
src/usePrefersReducedMotion.ts
|
||||
src/useReactiveState.ts
|
||||
src/useTheme.test.ts
|
||||
src/useTheme.ts
|
||||
src/useWakeLock.ts
|
||||
src/utils/array.ts
|
||||
src/utils/displayname-integration.test.ts
|
||||
src/utils/displayname.test.ts
|
||||
src/utils/displayname.ts
|
||||
src/utils/errors.ts
|
||||
src/utils/fetch.test.ts
|
||||
src/utils/fetch.ts
|
||||
src/utils/i18n.ts
|
||||
src/utils/iter.test.ts
|
||||
src/utils/iter.ts
|
||||
src/utils/matrix.ts
|
||||
src/utils/media.ts
|
||||
src/utils/observable.test.ts
|
||||
src/utils/observable.ts
|
||||
src/utils/spa.ts
|
||||
src/utils/test-fixtures.ts
|
||||
src/utils/test-viewmodel.ts
|
||||
src/utils/test.ts
|
||||
src/utils/videoFit.test.ts
|
||||
src/utils/videoFit.ts
|
||||
src/vitest.setup.ts
|
||||
src/widget.test.ts
|
||||
src/widget.ts
|
||||
tsconfig.json
|
||||
vite-embedded.config.ts
|
||||
vite-sdk.config.ts
|
||||
vite.config.ts
|
||||
vitest.config.ts
|
||||
@@ -0,0 +1,27 @@
|
||||
.gitignore
|
||||
README.md
|
||||
monitoring/.env.example
|
||||
monitoring/README.md
|
||||
monitoring/alertmanager/alertmanager.yml
|
||||
monitoring/alertmanager/matrix-alerts.py
|
||||
monitoring/alertmanager/release-watch.py
|
||||
monitoring/alloy/config.alloy
|
||||
monitoring/cve/cve-exporter.py
|
||||
monitoring/cve/images.txt
|
||||
monitoring/cve/scan-loop.sh
|
||||
monitoring/docker-compose.yml
|
||||
monitoring/grafana/dashboards/gameserver/pterodactyl-server.json
|
||||
monitoring/grafana/dashboards/general/k3s-cluster-monitoring.json
|
||||
monitoring/grafana/dashboards/general/kubernetes-views-nodes-list.json
|
||||
monitoring/grafana/dashboards/general/logs-app.json
|
||||
monitoring/grafana/dashboards/matrix/flux2.json
|
||||
monitoring/grafana/dashboards/matrix/k8s-dashboard.json
|
||||
monitoring/grafana/dashboards/operating/node-exporter-full.json
|
||||
monitoring/grafana/dashboards/operating/operating-docker-host-container-overview.json
|
||||
monitoring/grafana/dashboards/operating/operating-traefik-official-standalone-dashboard.json
|
||||
monitoring/grafana/dashboards/security/cve-overview.json
|
||||
monitoring/grafana/provisioning/dashboards/dashboards.yml
|
||||
monitoring/grafana/provisioning/datasources/datasources.yml
|
||||
monitoring/loki/loki-config.yaml
|
||||
monitoring/prometheus/alerts.yml
|
||||
monitoring/prometheus/prometheus.yml
|
||||
@@ -0,0 +1,152 @@
|
||||
"""Shared helpers for the neckbeard field-test inventory scripts.
|
||||
|
||||
Determinism rules obeyed by every consumer of this module:
|
||||
|
||||
* No wall-clock time enters any output file. Where an output needs a
|
||||
"days since" figure, it is measured against REFERENCE_DATE, which is
|
||||
the committer date of the management repo's HEAD -- a property of the
|
||||
tree under analysis, not of the moment the script runs.
|
||||
* Every collection written out is sorted by an explicit key.
|
||||
* Paths in outputs are repo-relative, never absolute.
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
from datetime import date
|
||||
from pathlib import Path
|
||||
|
||||
# Repo layout. WORKSPACE holds the management clone plus a components/
|
||||
# directory; override with NB_WORKSPACE when the checkout lives elsewhere.
|
||||
MGMT_REPO = Path(__file__).resolve().parents[2]
|
||||
WORKSPACE = Path(os.environ.get("NB_WORKSPACE", MGMT_REPO.parent))
|
||||
COMPONENTS_DIR = WORKSPACE / "components"
|
||||
DATA_DIR = MGMT_REPO / "analysis" / "data"
|
||||
|
||||
GITLAB_HOST = "https://git.lab"
|
||||
GROUP = "axion1337.chat"
|
||||
|
||||
# Frozen in analysis/SCOPE.md, confirmed by the human at the Phase-0 STOP.
|
||||
COMPONENTS = [
|
||||
("threadnet-call", "ThreadNet Call"),
|
||||
("thread-net-git", "ThreadNet Git"),
|
||||
("threadnet-operating", "ThreadNet Operating"),
|
||||
("axion1337.chat-gitops", "ThreadNet Server Suite"),
|
||||
("ThreadNet-Web", "ThreadNet Web"),
|
||||
]
|
||||
|
||||
# Named out of scope as analysis targets by the human. References into
|
||||
# them are still recorded, tagged points-outside-scope.
|
||||
OUT_OF_SCOPE_PROJECTS = ["game-operating", "gameserver"]
|
||||
OUT_OF_SCOPE_SUBGROUPS = ["vendor", "Archiv"]
|
||||
|
||||
# Tracked-but-vendored paths, excluded from trees and scans.
|
||||
VENDORED = re.compile(r"(^|/)(node_modules|dist|build|\.yarn|vendor)/")
|
||||
|
||||
DOC_SUFFIXES = {".md", ".rst"}
|
||||
|
||||
|
||||
# The management repo is measured at its default branch, never at the
|
||||
# analysis branch: otherwise this analysis observes its own commits and
|
||||
# its own analysis/ files and reports them as project reality.
|
||||
BASELINE_REF = {"management": "main"}
|
||||
ANALYSIS_DIR = "analysis/"
|
||||
|
||||
|
||||
def repos():
|
||||
"""(name, path) for the management repo and every in-scope component."""
|
||||
out = [("management", MGMT_REPO)]
|
||||
out += [(slug, COMPONENTS_DIR / slug) for slug, _ in COMPONENTS]
|
||||
return out
|
||||
|
||||
|
||||
def ref_of(name):
|
||||
return BASELINE_REF.get(name, "HEAD")
|
||||
|
||||
|
||||
def assert_untouched():
|
||||
"""Fail loudly if this session modified anything outside analysis/.
|
||||
|
||||
The mandate forbids changing any existing file. That is checked here
|
||||
mechanically rather than trusted, on every run.
|
||||
"""
|
||||
ref = ref_of("management")
|
||||
diff = git(MGMT_REPO, "diff", "--name-only", ref, "--", ".",
|
||||
f":(exclude){ANALYSIS_DIR}")
|
||||
untracked = git(MGMT_REPO, "ls-files", "--others", "--exclude-standard",
|
||||
"--", ".", f":(exclude){ANALYSIS_DIR}")
|
||||
offending = [p for p in (diff + untracked).split("\n") if p.strip()]
|
||||
if offending:
|
||||
raise SystemExit(
|
||||
"ABORT: this session changed files outside analysis/, which the "
|
||||
"field-test mandate forbids:\n " + "\n ".join(offending))
|
||||
|
||||
|
||||
def git(repo, *args):
|
||||
"""Run git in repo, return stdout as text. Raises on non-zero exit."""
|
||||
res = subprocess.run(
|
||||
["git", "-C", str(repo), *args],
|
||||
capture_output=True, text=True, errors="replace",
|
||||
)
|
||||
if res.returncode != 0:
|
||||
raise RuntimeError(f"git {' '.join(args)} in {repo}: {res.stderr.strip()}")
|
||||
return res.stdout
|
||||
|
||||
|
||||
def tracked_files(name, repo, skip_vendored=True):
|
||||
"""Sorted repo-relative paths tracked at the repo's baseline ref.
|
||||
|
||||
Reads the ref, not the index, so the analysis branch's own files stay
|
||||
out of the inventory.
|
||||
"""
|
||||
files = [f for f in
|
||||
git(repo, "ls-tree", "-r", "-z", "--name-only", ref_of(name)).split("\0")
|
||||
if f]
|
||||
files = [f for f in files if not f.startswith(ANALYSIS_DIR)]
|
||||
if skip_vendored:
|
||||
files = [f for f in files if not VENDORED.search(f)]
|
||||
return sorted(files)
|
||||
|
||||
|
||||
def last_commit(name, repo, path):
|
||||
"""(iso_date, author_name, short_sha) of the newest commit touching path."""
|
||||
out = git(repo, "log", "-1", "--format=%ad\t%an\t%h", "--date=short",
|
||||
ref_of(name), "--", path)
|
||||
if not out.strip():
|
||||
return ("", "", "")
|
||||
return tuple(out.strip().split("\t"))
|
||||
|
||||
|
||||
def _reference_date():
|
||||
out = git(MGMT_REPO, "log", "-1", "--format=%cd", "--date=short",
|
||||
ref_of("management"))
|
||||
y, m, d = (int(x) for x in out.strip().split("-"))
|
||||
return date(y, m, d)
|
||||
|
||||
|
||||
REFERENCE_DATE = _reference_date()
|
||||
|
||||
|
||||
def days_since(iso_date):
|
||||
"""Whole days from iso_date to REFERENCE_DATE; '' when the date is empty."""
|
||||
if not iso_date:
|
||||
return ""
|
||||
y, m, d = (int(x) for x in iso_date.split("-"))
|
||||
return (REFERENCE_DATE - date(y, m, d)).days
|
||||
|
||||
|
||||
def cell(text):
|
||||
"""Make a value safe for a TSV cell: no tabs, no newlines, trimmed."""
|
||||
return str(text).replace("\t", " ").replace("\r", " ").replace("\n", " ").strip()
|
||||
|
||||
|
||||
def write_tsv(name, header, rows):
|
||||
"""Write sorted rows to analysis/data/<name>, tab separated."""
|
||||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
||||
path = DATA_DIR / name
|
||||
with path.open("w", encoding="utf-8") as fh:
|
||||
fh.write("\t".join(header) + "\n")
|
||||
for row in rows:
|
||||
fh.write("\t".join(cell(v) for v in row) + "\n")
|
||||
print(f" {name}: {len(rows)} rows")
|
||||
return path
|
||||
@@ -0,0 +1,99 @@
|
||||
"""Export group issues from git.lab to analysis/data/gitlab_issues.json.
|
||||
|
||||
Metadata only -- titles, labels, dates, state -- never descriptions or
|
||||
comment bodies. The token is read from the path the management repo's
|
||||
CLAUDE.md sanctions (~/.config/gitlab-lab/token) and is never printed,
|
||||
logged or written anywhere.
|
||||
|
||||
All issues of the group are exported, open and closed alike: the group is
|
||||
small enough that a full export beats an arbitrary "recently closed"
|
||||
cutoff, and a full export is trivially reproducible. Issues of projects
|
||||
the human placed out of scope are exported too and tagged
|
||||
in_scope=false -- they are evidence about where work lives.
|
||||
|
||||
Skipped without failing the run when the token file is missing or git.lab
|
||||
is unreachable; run_all.sh then proceeds without the ticket dimension.
|
||||
"""
|
||||
|
||||
import json
|
||||
import sys
|
||||
import urllib.error
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
|
||||
from common import (
|
||||
COMPONENTS, DATA_DIR, GITLAB_HOST, GROUP, OUT_OF_SCOPE_PROJECTS,
|
||||
)
|
||||
|
||||
TOKEN_FILE = Path.home() / ".config" / "gitlab-lab" / "token"
|
||||
IN_SCOPE = {slug for slug, _ in COMPONENTS} | {"management"}
|
||||
|
||||
# Exactly the fields the analysis needs. Anything else -- above all
|
||||
# `description` -- is dropped before it reaches disk.
|
||||
FIELDS = ["id", "iid", "project_id", "title", "state", "labels",
|
||||
"created_at", "updated_at", "closed_at", "due_date"]
|
||||
|
||||
|
||||
def api(token, path):
|
||||
"""Yield every page of a GitLab list endpoint."""
|
||||
url = f"{GITLAB_HOST}/api/v4/{path}"
|
||||
while url:
|
||||
req = urllib.request.Request(url, headers={"PRIVATE-TOKEN": token})
|
||||
with urllib.request.urlopen(req, timeout=60) as resp:
|
||||
yield from json.load(resp)
|
||||
url = None
|
||||
for link in resp.headers.get("Link", "").split(","):
|
||||
if 'rel="next"' in link:
|
||||
url = link.split(";")[0].strip().strip("<>")
|
||||
|
||||
|
||||
def slim(issue, projects):
|
||||
out = {k: issue.get(k) for k in FIELDS}
|
||||
out["labels"] = sorted(out["labels"] or [])
|
||||
out["project"] = projects.get(issue["project_id"], str(issue["project_id"]))
|
||||
out["in_scope"] = out["project"] in IN_SCOPE
|
||||
milestone = issue.get("milestone")
|
||||
out["milestone"] = milestone["title"] if milestone else None
|
||||
assignee = issue.get("assignee")
|
||||
out["assignee"] = assignee["username"] if assignee else None
|
||||
return out
|
||||
|
||||
|
||||
def main():
|
||||
if not TOKEN_FILE.exists():
|
||||
print(f" gitlab_issues.json: SKIPPED, no token at {TOKEN_FILE}")
|
||||
return 0
|
||||
token = TOKEN_FILE.read_text().strip()
|
||||
|
||||
try:
|
||||
projects = {
|
||||
p["id"]: p["path"]
|
||||
for p in api(token, f"groups/{GROUP}/projects?per_page=100&archived=false")
|
||||
}
|
||||
issues = list(api(token, f"groups/{GROUP}/issues?per_page=100&state=all&scope=all"))
|
||||
except (urllib.error.URLError, TimeoutError) as exc:
|
||||
print(f" gitlab_issues.json: SKIPPED, git.lab unreachable ({exc.reason})")
|
||||
return 0
|
||||
|
||||
payload = {
|
||||
"source": f"{GITLAB_HOST}/api/v4/groups/{GROUP}/issues?state=all",
|
||||
"note": "metadata only; descriptions and comments deliberately not exported",
|
||||
"projects": {
|
||||
path: {"id": pid, "in_scope": path in IN_SCOPE,
|
||||
"declared_out_of_scope": path in OUT_OF_SCOPE_PROJECTS}
|
||||
for pid, path in sorted(projects.items(), key=lambda kv: kv[1])
|
||||
},
|
||||
"issues": sorted((slim(i, projects) for i in issues), key=lambda i: i["id"]),
|
||||
}
|
||||
|
||||
out = DATA_DIR / "gitlab_issues.json"
|
||||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
||||
out.write_text(json.dumps(payload, indent=2, ensure_ascii=False,
|
||||
sort_keys=True) + "\n", encoding="utf-8")
|
||||
print(f" gitlab_issues.json: {len(payload['issues'])} issues, "
|
||||
f"{len(projects)} projects")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,83 @@
|
||||
"""Extract checkable claims from the management repo's docs -> claims.tsv.
|
||||
|
||||
Phase 1 only *extracts*; nothing here judges whether a claim is true.
|
||||
Verification happens in Phase 2.
|
||||
|
||||
A script cannot recognise a claim semantically, so extraction is trigger
|
||||
based: a doc line is emitted when it matches at least one pattern that
|
||||
marks it as asserting something checkable about the world (a component,
|
||||
a count, a status, a version, a path, a date, the mirror topology, an
|
||||
issue). Recall is favoured over precision -- a false positive costs a
|
||||
Phase-2 glance, a false negative loses evidence.
|
||||
|
||||
Only management-repo docs are scanned: the mandate scopes claims to the
|
||||
management repo's statements about its components.
|
||||
"""
|
||||
|
||||
import re
|
||||
|
||||
from common import DOC_SUFFIXES, MGMT_REPO, cell, days_since, last_commit, \
|
||||
tracked_files, write_tsv
|
||||
|
||||
COMPONENT_WORDS = (
|
||||
r"ThreadNet[- ](?:Web|Call|Git|Operating|Server Suite)|threadnet-call|"
|
||||
r"thread-net-git|threadnet-operating|threadnet-web|axion1337\.chat-gitops|"
|
||||
r"game-operating|gameserver|management"
|
||||
)
|
||||
|
||||
TRIGGERS = [
|
||||
("component-ref", re.compile(COMPONENT_WORDS, re.I)),
|
||||
("count", re.compile(
|
||||
r"\b(ein|zwei|drei|vier|fünf|sechs|sieben|acht|neun|zehn|\d+)\s+"
|
||||
r"(Repos?|Produkt-Repos?|Projekte?|Issues?|Commits?|Pipelines?|Themes?|"
|
||||
r"Hosts?|Mirrors?)\b", re.I)),
|
||||
("status", re.compile(
|
||||
r"\b(erledigt|offen|live|aktiv|geschlossen|leer|umgezogen|entfallen|"
|
||||
r"abgelöst|veraltet|überholt|scharf|grün|rot|tabu|kanonisch|"
|
||||
r"zurückgestellt|verifiziert|bereinigt)\b", re.I)),
|
||||
("version", re.compile(r"\bv?\d+\.\d+\.\d+\b|\b\d+\.\d+\.\d+-[\w.]+\b")),
|
||||
("path-claim", re.compile(r"`[^`]*(?:/[^`]*|\.(?:md|ya?ml|json|py|ts|toml|crt))`")),
|
||||
("date-claim", re.compile(r"\b(seit|Stand|bis|am|ab)\s+\d{4}-\d{2}-\d{2}\b", re.I)),
|
||||
("mirror-topology", re.compile(
|
||||
r"\b(Mirror|Spiegel|gespiegelt|Gitea|rohana|Push-Mirror|kanonisch|Flux-Source)\b",
|
||||
re.I)),
|
||||
("issue-ref", re.compile(r"(?:#\d+\b|/-/issues/\d+|\b[A-Z]{3,8}-\d{2}\b)")),
|
||||
]
|
||||
|
||||
FENCE_RE = re.compile(r"^\s*(```|~~~)")
|
||||
|
||||
|
||||
def main():
|
||||
rows = []
|
||||
docs = [f for f in tracked_files("management", MGMT_REPO)
|
||||
if any(f.endswith(s) for s in DOC_SUFFIXES)]
|
||||
for src in sorted(docs):
|
||||
iso, _, _ = last_commit("management", MGMT_REPO, src)
|
||||
text = (MGMT_REPO / src).read_text(encoding="utf-8")
|
||||
in_fence = False
|
||||
for lineno, line in enumerate(text.splitlines(), start=1):
|
||||
if FENCE_RE.match(line):
|
||||
in_fence = not in_fence
|
||||
continue
|
||||
stripped = line.strip()
|
||||
if len(stripped) < 12:
|
||||
continue
|
||||
hits = [name for name, rx in TRIGGERS if rx.search(stripped)]
|
||||
if not hits:
|
||||
continue
|
||||
rows.append([
|
||||
src, lineno, ";".join(hits), "yes" if in_fence else "no",
|
||||
iso, days_since(iso), cell(stripped)[:400],
|
||||
])
|
||||
|
||||
rows.sort(key=lambda r: (r[0], r[1]))
|
||||
write_tsv(
|
||||
"claims.tsv",
|
||||
["path", "line", "triggers", "in_code_block", "doc_last_commit_date",
|
||||
"doc_days_since_change", "claim_text"],
|
||||
rows,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,146 @@
|
||||
"""Link inventory across all analysed repos -> analysis/data/links.tsv.
|
||||
|
||||
Statuses are the three the mandate fixes:
|
||||
|
||||
ok target verified to exist
|
||||
broken target verified to be absent
|
||||
points-outside-scope target lies outside the analysed set
|
||||
|
||||
A fourth column, `kind`, carries the nuance the status alone cannot:
|
||||
whether the target was a relative file, a git.lab issue, a repo URL, an
|
||||
anchor, or an external URL.
|
||||
|
||||
Issue URLs resolve offline against gitlab_issues.json when that file
|
||||
exists, so a rerun needs no network. Without it they are reported as
|
||||
kind=issue-url, status=points-outside-scope, note=unresolved-no-issue-data.
|
||||
"""
|
||||
|
||||
import json
|
||||
import re
|
||||
from urllib.parse import unquote, urlsplit
|
||||
|
||||
from common import (
|
||||
COMPONENTS, DATA_DIR, DOC_SUFFIXES, GROUP, OUT_OF_SCOPE_PROJECTS,
|
||||
OUT_OF_SCOPE_SUBGROUPS, repos, tracked_files, write_tsv,
|
||||
)
|
||||
|
||||
# Inline markdown links, minus image embeds; reference definitions too.
|
||||
LINK_RE = re.compile(r"(?<!\!)\[[^\]]*\]\(\s*<?([^)\s>]+)[^)]*\)")
|
||||
# A reference definition needs a target that actually looks like one.
|
||||
# Without that guard, log lines such as "[ERROR]: Task failed: ..." in
|
||||
# imported wiki dumps parse as links to a file named "Task".
|
||||
REFDEF_RE = re.compile(r"^\s{0,3}\[[^\]]+\]:\s*<?([^\s>]*[/.:#][^\s>]*)")
|
||||
|
||||
IN_SCOPE_REPOS = {slug for slug, _ in COMPONENTS} | {"management"}
|
||||
ISSUE_URL_RE = re.compile(r"^/([^/]+(?:/[^/]+)*?)/-/issues/(\d+)")
|
||||
|
||||
|
||||
def load_issue_index():
|
||||
"""(project, iid) pairs known to exist, from a previous API export."""
|
||||
path = DATA_DIR / "gitlab_issues.json"
|
||||
if not path.exists():
|
||||
return None
|
||||
data = json.loads(path.read_text(encoding="utf-8"))
|
||||
return {(i["project"], i["iid"]) for i in data["issues"]}
|
||||
|
||||
|
||||
def classify_url(target, issue_index):
|
||||
"""-> (kind, status, note) for an absolute URL."""
|
||||
parts = urlsplit(target)
|
||||
host = parts.netloc.lower()
|
||||
if host != "git.lab":
|
||||
return ("external-url", "points-outside-scope", f"host={host}")
|
||||
|
||||
m = ISSUE_URL_RE.match(parts.path)
|
||||
if m:
|
||||
ns, iid = m.group(1), int(m.group(2))
|
||||
group, _, project = ns.rpartition("/")
|
||||
if group != GROUP or project not in IN_SCOPE_REPOS:
|
||||
return ("issue-url", "points-outside-scope", f"project={ns}")
|
||||
if issue_index is None:
|
||||
return ("issue-url", "points-outside-scope", "unresolved-no-issue-data")
|
||||
if (project, iid) in issue_index:
|
||||
return ("issue-url", "ok", f"{project}#{iid}")
|
||||
return ("issue-url", "broken", f"{project}#{iid} not in group export")
|
||||
|
||||
segs = [s for s in parts.path.split("/") if s]
|
||||
if segs and segs[0] == GROUP and len(segs) >= 2:
|
||||
project = segs[1]
|
||||
if project in OUT_OF_SCOPE_PROJECTS or project in OUT_OF_SCOPE_SUBGROUPS:
|
||||
return ("repo-url", "points-outside-scope", f"declared out of scope: {project}")
|
||||
if project in IN_SCOPE_REPOS:
|
||||
return ("repo-url", "ok", f"in-scope repo {project}")
|
||||
return ("repo-url", "points-outside-scope", f"path={parts.path or '/'}")
|
||||
|
||||
|
||||
def classify_relative(repo_name, src, target, tracked):
|
||||
"""-> (kind, status, note) for a repo-relative link."""
|
||||
path = unquote(target.split("#")[0].split("?")[0])
|
||||
if not path:
|
||||
return ("anchor", "ok", "same-document anchor")
|
||||
|
||||
base = src.rsplit("/", 1)[0] if "/" in src else ""
|
||||
joined = f"{base}/{path}" if base and not path.startswith("/") else path.lstrip("/")
|
||||
|
||||
resolved, stack = [], joined.split("/")
|
||||
for seg in stack:
|
||||
if seg in ("", "."):
|
||||
continue
|
||||
if seg == "..":
|
||||
if resolved:
|
||||
resolved.pop()
|
||||
else:
|
||||
return ("relative-file", "points-outside-scope",
|
||||
"traverses above the repo root")
|
||||
else:
|
||||
resolved.append(seg)
|
||||
cand = "/".join(resolved)
|
||||
|
||||
if cand in tracked:
|
||||
return ("relative-file", "ok", cand)
|
||||
# Directory links are legitimate targets in this doc set.
|
||||
if any(t.startswith(cand + "/") for t in tracked):
|
||||
return ("relative-file", "ok", cand + "/ (directory)")
|
||||
# Extensionless doc links ("[x](playwright#anchor)") are common in
|
||||
# imported upstream docs and resolve in the renderers that serve them.
|
||||
for suffix in sorted(DOC_SUFFIXES):
|
||||
if cand + suffix in tracked:
|
||||
return ("relative-file", "ok", f"{cand}{suffix} (extension implied)")
|
||||
return ("relative-file", "broken", f"no tracked file at {cand}")
|
||||
|
||||
|
||||
def main():
|
||||
issue_index = load_issue_index()
|
||||
rows = []
|
||||
for name, repo in repos():
|
||||
tracked = set(tracked_files(name, repo))
|
||||
docs = [f for f in tracked if any(f.endswith(s) for s in DOC_SUFFIXES)]
|
||||
for src in docs:
|
||||
try:
|
||||
text = (repo / src).read_text(encoding="utf-8")
|
||||
except (OSError, UnicodeDecodeError):
|
||||
continue
|
||||
for lineno, line in enumerate(text.splitlines(), start=1):
|
||||
targets = LINK_RE.findall(line)
|
||||
ref = REFDEF_RE.match(line)
|
||||
if ref:
|
||||
targets = targets + [ref.group(1)]
|
||||
for target in targets:
|
||||
if target.startswith(("mailto:", "tel:")):
|
||||
kind, status, note = ("mailto", "points-outside-scope", "")
|
||||
elif target.startswith("#"):
|
||||
kind, status, note = ("anchor", "ok", "same-document anchor")
|
||||
elif re.match(r"^[a-zA-Z][a-zA-Z0-9+.-]*://", target):
|
||||
kind, status, note = classify_url(target, issue_index)
|
||||
else:
|
||||
kind, status, note = classify_relative(name, src, target, tracked)
|
||||
rows.append([name, src, lineno, kind, target, status, note])
|
||||
|
||||
rows.sort(key=lambda r: (r[0], r[1], r[2], r[4]))
|
||||
write_tsv("links.tsv",
|
||||
["repo", "src_path", "line", "kind", "target", "status", "note"],
|
||||
rows)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,171 @@
|
||||
"""Per-repo inventory: file trees, doc inventory, markers, git activity.
|
||||
|
||||
Writes tree_<repo>.txt, docs_inventory.tsv, markers.tsv, git_activity.tsv.
|
||||
"""
|
||||
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from datetime import date
|
||||
|
||||
from common import (
|
||||
DATA_DIR, DOC_SUFFIXES, assert_untouched, days_since, git, last_commit,
|
||||
ref_of, repos, tracked_files, write_tsv,
|
||||
)
|
||||
|
||||
MARKER_RE = re.compile(r"\b(TODO|FIXME|HACK|XXX|DEPRECATED)\b")
|
||||
# git grep's ERE does not implement \b, which silently reports zero
|
||||
# markers; the scan therefore runs in Python, where \b works.
|
||||
|
||||
MAX_SCAN_BYTES = 512 * 1024
|
||||
|
||||
|
||||
def write_trees():
|
||||
for name, repo in repos():
|
||||
files = tracked_files(name, repo)
|
||||
path = DATA_DIR / f"tree_{name}.txt"
|
||||
path.write_text("\n".join(files) + "\n", encoding="utf-8")
|
||||
print(f" tree_{name}.txt: {len(files)} files")
|
||||
|
||||
|
||||
def write_docs_inventory():
|
||||
rows = []
|
||||
for name, repo in repos():
|
||||
for f in tracked_files(name, repo):
|
||||
if not any(f.endswith(s) for s in DOC_SUFFIXES):
|
||||
continue
|
||||
size = (repo / f).stat().st_size
|
||||
iso, author, sha = last_commit(name, repo, f)
|
||||
rows.append([name, f, size, iso, author, days_since(iso), sha])
|
||||
rows.sort(key=lambda r: (r[0], r[1]))
|
||||
write_tsv(
|
||||
"docs_inventory.tsv",
|
||||
["repo", "path", "bytes", "last_commit_date", "last_author",
|
||||
"days_since_change", "last_commit"],
|
||||
rows,
|
||||
)
|
||||
|
||||
|
||||
def _blame_dates(repo, path, lines_wanted):
|
||||
"""Map line number -> (author date, short sha, author) via one blame pass."""
|
||||
try:
|
||||
out = git(repo, "blame", "--line-porcelain", "--", path)
|
||||
except RuntimeError:
|
||||
return {}
|
||||
result, sha, author, when, lineno = {}, None, None, None, None
|
||||
for line in out.splitlines():
|
||||
if re.match(r"^[0-9a-f]{40} ", line):
|
||||
parts = line.split()
|
||||
sha, lineno = parts[0], int(parts[2])
|
||||
elif line.startswith("author "):
|
||||
author = line[len("author "):]
|
||||
elif line.startswith("author-time "):
|
||||
when = date.fromtimestamp(int(line[len("author-time "):])).isoformat()
|
||||
elif line.startswith("\t"):
|
||||
if lineno in lines_wanted:
|
||||
result[lineno] = (when or "", (sha or "")[:9], author or "")
|
||||
return result
|
||||
|
||||
|
||||
def write_markers():
|
||||
rows = []
|
||||
for name, repo in repos():
|
||||
for f in tracked_files(name, repo):
|
||||
full = repo / f
|
||||
try:
|
||||
if full.stat().st_size > MAX_SCAN_BYTES:
|
||||
continue
|
||||
text = full.read_text(encoding="utf-8")
|
||||
except (OSError, UnicodeDecodeError):
|
||||
continue # binary or unreadable: not a marker carrier
|
||||
hits = {}
|
||||
for i, line in enumerate(text.splitlines(), start=1):
|
||||
m = MARKER_RE.search(line)
|
||||
if m:
|
||||
hits[i] = (m.group(1), line.strip()[:200])
|
||||
if not hits:
|
||||
continue
|
||||
blame = _blame_dates(repo, f, set(hits))
|
||||
for lineno in sorted(hits):
|
||||
marker, snippet = hits[lineno]
|
||||
when, sha, author = blame.get(lineno, ("", "", ""))
|
||||
rows.append([name, f, lineno, marker, snippet, when,
|
||||
days_since(when), sha, author])
|
||||
rows.sort(key=lambda r: (r[0], r[1], r[2]))
|
||||
write_tsv(
|
||||
"markers.tsv",
|
||||
["repo", "path", "line", "marker", "text", "blame_date",
|
||||
"days_since_blame", "blame_commit", "blame_author"],
|
||||
rows,
|
||||
)
|
||||
|
||||
|
||||
def _is_doc(path):
|
||||
return any(path.endswith(s) for s in DOC_SUFFIXES)
|
||||
|
||||
|
||||
def write_git_activity():
|
||||
rows = []
|
||||
for name, repo in repos():
|
||||
log = git(repo, "log", "--format=%x01%H\t%ad", "--date=short",
|
||||
"--name-only", ref_of(name))
|
||||
per_month = defaultdict(lambda: {"commits": 0, "docs": 0, "code": 0,
|
||||
"docs_only": 0})
|
||||
commit_days = []
|
||||
for chunk in log.split("\x01"):
|
||||
if not chunk.strip():
|
||||
continue
|
||||
head, _, body = chunk.partition("\n")
|
||||
sha, iso = head.split("\t")
|
||||
files = [ln for ln in body.splitlines() if ln.strip()]
|
||||
touched_docs = any(_is_doc(f) for f in files)
|
||||
touched_code = any(not _is_doc(f) for f in files)
|
||||
bucket = per_month[iso[:7]]
|
||||
bucket["commits"] += 1
|
||||
bucket["docs"] += 1 if touched_docs else 0
|
||||
bucket["code"] += 1 if touched_code else 0
|
||||
bucket["docs_only"] += 1 if touched_docs and not touched_code else 0
|
||||
commit_days.append(iso)
|
||||
|
||||
for month in sorted(per_month):
|
||||
b = per_month[month]
|
||||
for metric in ("commits", "docs", "code", "docs_only"):
|
||||
key = {"docs": "commits_touching_docs",
|
||||
"code": "commits_touching_code",
|
||||
"docs_only": "commits_docs_only"}.get(metric, metric)
|
||||
rows.append([name, month, key, b[metric]])
|
||||
|
||||
days = sorted({d for d in commit_days})
|
||||
totals = {
|
||||
"commits": len(commit_days),
|
||||
"commits_touching_docs": sum(b["docs"] for b in per_month.values()),
|
||||
"commits_touching_code": sum(b["code"] for b in per_month.values()),
|
||||
"commits_docs_only": sum(b["docs_only"] for b in per_month.values()),
|
||||
"active_days": len(days),
|
||||
"first_commit": days[0] if days else "",
|
||||
"last_commit": days[-1] if days else "",
|
||||
"days_since_last_commit": days_since(days[-1]) if days else "",
|
||||
}
|
||||
gap, gap_from, gap_to = 0, "", ""
|
||||
for a, b in zip(days, days[1:]):
|
||||
ya, ma, da = (int(x) for x in a.split("-"))
|
||||
yb, mb, db = (int(x) for x in b.split("-"))
|
||||
delta = (date(yb, mb, db) - date(ya, ma, da)).days
|
||||
if delta > gap:
|
||||
gap, gap_from, gap_to = delta, a, b
|
||||
totals["max_gap_days"] = gap
|
||||
totals["max_gap_from"] = gap_from
|
||||
totals["max_gap_to"] = gap_to
|
||||
for metric in sorted(totals):
|
||||
rows.append([name, "ALL", metric, totals[metric]])
|
||||
|
||||
rows.sort(key=lambda r: (r[0], r[1], r[2]))
|
||||
write_tsv("git_activity.tsv", ["repo", "scope", "metric", "value"], rows)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
assert_untouched()
|
||||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
||||
write_trees()
|
||||
write_docs_inventory()
|
||||
write_markers()
|
||||
write_git_activity()
|
||||
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
# Reproduce every raw data file of the neckbeard field test from zero.
|
||||
#
|
||||
# bash analysis/scripts/run_all.sh
|
||||
#
|
||||
# Clones the in-scope component repos next to the management repo if they
|
||||
# are missing, then regenerates everything under analysis/data/.
|
||||
# Rerunning on an unchanged tree must produce no diff -- no wall-clock
|
||||
# time enters any output (see common.py).
|
||||
#
|
||||
# Requirements: bash, git, python3 (stdlib only). Network and lab access
|
||||
# are needed for the initial clone and for gitlab_issues.json; both steps
|
||||
# skip cleanly without them, and everything else still runs.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
MGMT_REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
WORKSPACE="${NB_WORKSPACE:-$(dirname "$MGMT_REPO")}"
|
||||
COMPONENTS_DIR="$WORKSPACE/components"
|
||||
SCRIPTS="$MGMT_REPO/analysis/scripts"
|
||||
|
||||
# Scope frozen in analysis/SCOPE.md, confirmed by the human at Phase 0.
|
||||
COMPONENTS=(
|
||||
threadnet-call
|
||||
thread-net-git
|
||||
threadnet-operating
|
||||
axion1337.chat-gitops
|
||||
ThreadNet-Web
|
||||
)
|
||||
|
||||
echo "management repo: $MGMT_REPO"
|
||||
echo "workspace: $WORKSPACE"
|
||||
|
||||
echo
|
||||
echo "== components"
|
||||
mkdir -p "$COMPONENTS_DIR"
|
||||
for slug in "${COMPONENTS[@]}"; do
|
||||
target="$COMPONENTS_DIR/$slug"
|
||||
if [ -d "$target/.git" ]; then
|
||||
echo " $slug: present"
|
||||
continue
|
||||
fi
|
||||
echo " $slug: cloning"
|
||||
GIT_TERMINAL_PROMPT=0 git clone -q \
|
||||
"https://git.lab/axion1337.chat/$slug.git" "$target"
|
||||
# This analysis must never write back. Break the push path on every
|
||||
# clone it creates.
|
||||
git -C "$target" remote set-url --push origin DISABLED-no-push
|
||||
done
|
||||
|
||||
echo
|
||||
echo "== tickets"
|
||||
python3 "$SCRIPTS/fetch_gitlab_issues.py"
|
||||
|
||||
echo
|
||||
echo "== repo inventory"
|
||||
python3 "$SCRIPTS/inv_repo.py"
|
||||
|
||||
echo
|
||||
echo "== links"
|
||||
python3 "$SCRIPTS/inv_links.py"
|
||||
|
||||
echo
|
||||
echo "== claims"
|
||||
python3 "$SCRIPTS/inv_claims.py"
|
||||
|
||||
echo
|
||||
echo "done. raw data in $MGMT_REPO/analysis/data/"
|
||||
Reference in New Issue
Block a user