id: eb3693dfbac0454bbe3ef513b175cdb5
parent_id: c23778fd0ad0430f84ec569cd1f2a74b
item_type: 1
item_id: b801a3d8ab68494b908003e1db34aee5
item_updated_time: 1788089365335
title_diff: "[]"
body_diff: "[{\"diffs\":[[0,\"n & \"],[-1,\"Infra-Tagebuch\\\n\\\n> Fortlaufend geführt. Stand 12:40: PM-Architektur entschieden, I5 als\\\n> Issues live, Mirrors\"],[1,\"Abschluss\\\n\\\n> Session abgeschlossen ~13:30. Zweitägige Infrastruktur- und Prozessarbeit\\\n>\"],[0,\" kom\"]],\"start1\":51,\"start2\":51,\"length1\":117,\"length2\":96},{\"diffs\":[[0,\"lett\"],[-1,\",\"],[1,\";\"],[0,\" CI-\"],[-1,\"Kette steht und findet echte Fehler.\\\n\\\n## Entschieden und gebaut (heute Vormittag)\\\n\\\n1. **PM-Architektur**: moria-Issues = lebendes PM (Milestone=Iteration,\\\n   Labels feature/bug/doc/release/blocked); PD = Messung; hunnius = Roadmap +\\\n   externer Issue-Eingang; OpenUP-Docs generieren daraus\\\n2. **I5 (nur Produkt!)**: Milestone auf jan/keyfob-station, Issues #1-4\\\n   (WI-14 KLMS-Call diese Woche · WI-15 SCRAP 11.09. · WI-16 UC-10 ·\\\n   WI-17 Re-ship)\\\n3. **Mirrors komplett**: 12 Repos + infra, sync_on_commit + 8h, private\\\n   bleiben privat, Heads verifiziert\\\n4. **CI-Ket\"],[1,\"Queue läuft selbstständig weiter.\\\n\\\n## Endzustand\\\n\\\n### CI-Pipeline (der heutige Kern)\\\n\\\n| Repo | Stand |\\\n|---|---|\\\n| rusty_emu | **GRÜN** (Runs #4/#5 success — gtk-Fix via apt libgtk-3-dev; 163 Tests im Container) |\\\n| super_marvin | Runs queued (v5: 30-min-Timeout, Tests ohne hand_replay+holdem_bots); Build-Beweis: Run #3 kompilierte Workspace inkl. Cross-Repo-Checkout |\\\n| top_drives | Run #1 läuft (Welle-1) |\\\n| racecraft, rusty-\"],[0,\"te\"],[-1,\" \"],[0,\"le\"],[-1,\"bt**: Runner `hetzner-runner-1` (gitea act_runner v3.3.1,\\\n   systemd, docker-Labels) auf hunnius; push→mirror→Actions→Runner bewiesen\\\n5. **Actions auf moria DEAKTIVIERT** (12:34): moria hat keinen Runner —\\\n   Zombie-Pendings eliminiert, künftige Pushes queued dort nicht mehr. CI\\\n   ist exklusiv hunnius-Sache (Architektur-Modell 1)\\\n6. **infra-Repo live**: jan/infra (privat, gespiegelt) — README+\"],[1,\"metry, joplin-plugin-mcp | Welle-1 gepusht, Runs in Queue |\\\n| ac-telemetry-plugin | **skip** (Lua, kein Build — kein CI-Wert) |\\\n| keyfob-station, rustysar, pentest_scripts | später (Windows-Target / ARM-\"],[0,\"To\"],[-1,\"p\"],[0,\"ol\"],[-1,\"ogie,\\\n   jail-/Apache-Configs, 24 Skripte als Ausführungsgeschichte, lessons.md\\\n\\\n## CI-Bef\"],[1,\"chain / Skripte) |\\\n\\\n**CI-F\"],[0,\"unde \"],[-1,\"(\"],[0,\"de\"],[-1,\"r eigentliche Ertrag!)\\\n\\\n- **\"],[1,\"s Tages (Issues auf moria/\"],[0,\"supe\"]],\"start1\":148,\"start2\":148,\"length1\":1115,\"length2\":714},{\"diffs\":[[0,\"ria/super_marvin\"],[1,\"):**\\\n1.\"],[0,\" Issue #1**: tra\"]],\"start1\":854,\"start2\":854,\"length1\":32,\"length2\":39},{\"diffs\":[[0,\"Issue #1\"],[-1,\"**\"],[0,\": train_\"]],\"start1\":878,\"start2\":878,\"length1\":18,\"length2\":16},{\"diffs\":[[0,\"ingt\"],[-1,\"\\\n  (gen5_nn-Feature nicht gated)\"],[0,\" → D\"]],\"start1\":929,\"start2\":929,\"length1\":40,\"length2\":8},{\"diffs\":[[0,\"uild\"],[1,\"\\\n  \"],[0,\" kaputt\"],[-1,\". CI-\"],[1,\" (\"],[0,\"Work\"]],\"start1\":945,\"start2\":945,\"length1\":20,\"length2\":20},{\"diffs\":[[0,\"karound:\"],[-1,\"\\\n \"],[0,\" --featu\"]],\"start1\":964,\"start2\":964,\"length1\":18,\"length2\":16},{\"diffs\":[[0,\"5_nn\"],[1,\";\"],[0,\" \"],[-1,\"(\"],[0,\"Build \"],[-1,\"damit GRÜN in\"],[1,\"grün seit\"],[0,\" Run #3\"],[-1,\"!\"],[0,\")\\\n\"],[-1,\"- **super_marvin Issue #2**: hand_replay-Tests inkludieren\"],[1,\"2. Issue #2:\"],[0,\" 29 \"]],\"start1\":987,\"start2\":987,\"length1\":97,\"length2\":46},{\"diffs\":[[0,\"ton-\"],[-1,\"\\\n  D\"],[1,\"Testd\"],[0,\"aten\"]],\"start1\":1040,\"start2\":1040,\"length1\":12,\"length2\":13},{\"diffs\":[[0,\"ude_str!\"],[-1,\" —\"],[0,\" nicht i\"]],\"start1\":1062,\"start2\":1062,\"length1\":18,\"length2\":16},{\"diffs\":[[0,\" im Repo\"],[-1,\";\"],[1,\" —\\\n  \"],[0,\" .gitign\"]],\"start1\":1076,\"start2\":1076,\"length1\":17,\"length2\":21},{\"diffs\":[[0,\"reit\"],[-1,\".\\\n  Interim: tests --exclude hand_replay (Run #4 läuft)\\\n- **rusty_emu**: gtk ist unbedingte Linux-Target-Dependency → atk-sys\\\n  fehlt im Container. Fix: apt libgtk-3-dev im Workflow (Run #3 pending)\\\n- **Trigger-Mysterium**: rusty_emu-Runs feuerten bei den ersten zwei\\\n  Mirror-Push\"],[1,\" (10 synthetic/regression-Dateien kamen durch)\\\n3. Issue #3: holdem_bots-Test unter gen5_nn praktisch unbegrenzt (50+ min,\\\n   136% CPU, 66 CPU-min — vermutlich nie lokal gelaufen, candle fehlt auf\\\n   Dev-Maschine); Run #4 gekillt, Test lokal untersuchen (--nocapture)\\\n\\\n### Architektur-Beschlüsse (alle umgesetzt)\\\n\\\n1. **PM**: moria-Issues = lebendes PM (Milestone=Iteration); PD = Messung;\\\n   hunnius = Roadmap + externer Eingang; I5-Milestone + Issues #1-4 (nur\\\n   Produkt!)\\\n2. **Runner-Topologie**: genau EIN Runner, hunnius (Debian), Labels\\\n   docker/ubuntu-latest(host)/host; **Actions auf moria instanzweit\\\n   DEAKTIVIERT** (Zombie-Queue eliminiert)\\\n3. **Mirrors**: 13 Repos (12 + infra) moria→hunnius, sync_on_commit + 8h\\\n4. **infra-Repo**: jan/infra (privat, gespiegelt) — Config-as-Code: jail-/\\\n   Apache-Configs, 24 Skripte, lessons.md\\\n5. **PSP0 = rusty_dice** (eigenes Projekt, nicht in I5)\\\n\\\n### Technische Lessons des Tages (für infra/docs/l\"],[0,\"es\"],[-1,\" \"],[0,\"so\"],[-1,\"fort, bei den letzten dreien nicht — dispatch-API\\\n  funktioniert (Plural-Pfad 'dispatches'!), wartet aber auf Runner-Frei-\\\n  werdung (maxParallel=1). Beobachtung läuft\\\n\\\n## CI-Lessons (für infra/docs/lessons.md)\\\n\\\n- actions/checkout@v4\"],[1,\"ns.md)\\\n\\\n- **Runner-Slot-Seriellisierung**: maxParallel=1; wartende Runs sind in der\\\n  v11-API UNSICHTBAR (materialisieren erst bei Übernahme) — der „Trigger-\\\n  Flakiness\\\"-Verdacht war Serialisierung. Fix-Option: config.yaml capacity\\\n  erhöhen (offen)\\\n- **sqlite3 legt fehlende DB-Pfade schweigend als leere Datei an** — der\\\n  Fehlgriff auf gitea.db (Waisen-DB des Erstboots!) wurde so verschleiert;\\\n  echte DB = forgejo.db laut conf/app.ini [database] PATH. Waise zu\\\n  .orphan-firstboot umbenannt\\\n- moria-Dashboard-LED bei deaktivierten Actions + vorhandenen Workflow-\\\n  Dateien: kosmetischer Frontend-Effekt (API 404, UI zeichnet Pending) —\\\n  bekannt, ignoriert\\\n- act_runner braucht Environment=HOME; JS-Actions\"],[0,\" brauch\"],[-1,\"t\"],[1,\"en\"],[0,\" Node \"],[-1,\"IM\"],[1,\"im\"],[0,\" Job-\"],[1,\"\\\n  \"],[0,\"Cont\"]],\"start1\":1113,\"start2\":1113,\"length1\":548,\"length2\":1699},{\"diffs\":[[0,\" git\"],[-1,\"-\"],[1,\" \"],[0,\"clone\"],[-1,\"\\\n  statt JS-Actions; privat via `${{ secrets.GITEA_TOKEN }}`\\\n- Runner braucht Environment=HOME (sonst cache.dir-Fehler)\\\n- Act_runner-Quelle:\"],[1,\"; Dispatch-API-Pfad ist /dispatches (Plural);\\\n  super_marvin-Dispatch (privat) 500er — umgangen via Empty-Commit-Nudge\\\n- gitea-act_runner v3.3.1 von\"],[0,\" git\"]],\"start1\":2825,\"start2\":2825,\"length1\":154,\"length2\":162},{\"diffs\":[[0,\"ejo-\"],[-1,\"Runn\"],[1,\"Hub-Pfad\\\n  existi\"],[0,\"er\"],[1,\"t\"],[0,\" nicht\"],[-1,\" unter\\\n  erwartetem Codeberg-Pfad); Log-API fehlt in v11 → zstdcat aus dem\\\n  Volume; Cron-Export alle 5 min\"],[1,\"); Actions-Logs .zst im Volume, v11 ohne Log-API →\\\n  5-Min-Cron-Export nach /tmp/forgejo-logs.txt\"],[0,\" ins\"]],\"start1\":3012,\"start2\":3012,\"length1\":127,\"length2\":131},{\"diffs\":[[0,\"vice\"],[-1,\"!\"],[0,\")\\\n\"],[-1,\"- Forgejo v11+15: Repo-Erstellung per API braucht write:user\\\n\\\n## Noch offen (Reihenfolge)\\\n\\\n1. super_marvin #4 + rusty_emu #3 Ergebnis abwarten → bei GRÜN:\\\n   **Welle-1-Rollout** (top_drives, racecraft, rusty-telemetry,\\\n   joplin-plugin-mcp, ac-telemetry-plugin) mit Standard-Workflow\\\n2. Ubuntu-Rechner: Key registrieren, Remotes umstellen,\"],[1,\"\\\n## Offen (Reihenfolge, nächste Session)\\\n\\\n1. **Queue-Drain beobachten**: super_marvin v5 + 4 Welle-1-Runs (läuft\\\n   über Nacht durch); danach Status-Check und ggf. Fixes (racecraft/\\\n   joplin: npm-Besonderheiten möglich)\\\n2. **Runner capacity auf 2** (/etc/forgejo-runner/config.yaml, sudo)\\\n3. **Ubuntu-Rechner onboarden**: SSH-Key im Forgejo-Account, Remotes auf\\\n   :2222 umstellen, super_marvin/rusty-marvin/rusty_emu\"],[0,\" pul\"]],\"start1\":3161,\"start2\":3161,\"length1\":350,\"length2\":428},{\"diffs\":[[0,\" klonen \"],[-1,\"(\"],[1,\"— \"],[0,\"Befehlsf\"]],\"start1\":3602,\"start2\":3602,\"length1\":17,\"length2\":18},{\"diffs\":[[0,\"iten\"],[-1,\")\\\n3. \"],[1,\"\\\n4. **\"],[0,\"PD-Block\"],[1,\"**\"],[0,\": Stop-\"],[-1,\"Demo\"],[1,\"Endpoint-Demo (immer noch offen!)\"],[0,\", PD\"]],\"start1\":3632,\"start2\":3632,\"length1\":32,\"length2\":64},{\"diffs\":[[0,\"PD-Nodes\"],[1,\"\\\n  \"],[0,\" (rusty_\"]],\"start1\":3694,\"start2\":3694,\"length1\":16,\"length2\":19},{\"diffs\":[[0,\"ice PSP0\"],[-1,\"!\"],[0,\", I5-Cap\"]],\"start1\":3714,\"start2\":3714,\"length1\":17,\"length2\":16},{\"diffs\":[[0,\"apture),\"],[-1,\"\\\n  \"],[0,\" pspdata\"]],\"start1\":3728,\"start2\":3728,\"length1\":19,\"length2\":16},{\"diffs\":[[0,\"epo\\\n\"],[-1,\"4. generate-pm-docs auf Issues-API (infra-Issue)\\\n5. Branch-Politik festlegen (Vorschlag: direct-to-master mit Gate)\\\n6\"],[1,\"5. **I5-Produktarbeit**: KLMS-Call (WI-14, DIESE WOCHE!) terminieren;\\\n   SCRAP (WI-15, Frist 11.09.)\\\n6. generate-pm-docs auf Issues-API; Branch-Politik; CI-Cache-Image\\\n   (candle-Builds 10-15 min pro Run); super_marvin-Issues #1-3 lokal\\\n   aufarbeiten (Holdem-Test eingrenzen!)\\\n7\"],[0,\". Ha\"]],\"start1\":3750,\"start2\":3750,\"length1\":125,\"length2\":287},{\"diffs\":[[0,\"tash\"],[-1,\" einspielen\"],[0,\", ma\"]],\"start1\":4059,\"start2\":4059,\"length1\":19,\"length2\":8},{\"diffs\":[[0,\" diffen,\"],[-1,\"\\\n  \"],[0,\" forgejo\"]],\"start1\":4078,\"start2\":4078,\"length1\":19,\"length2\":16},{\"diffs\":[[0,\".old\"],[-1,\" löschen,\"],[1,\",\\\n  \"],[0,\" Jen\"]],\"start1\":4094,\"start2\":4094,\"length1\":17,\"length2\":12},{\"diffs\":[[0,\"nzen\"],[-1,\"\\\n7. CI-Image mit cargo-cache (candle-Builds dauern 35+ min pro Run!)\"],[0,\"\\\n\\\n##\"]],\"start1\":4142,\"start2\":4142,\"length1\":76,\"length2\":8},{\"diffs\":[[0,\"nt-pm` (\"],[1,\"write:\"],[0,\"repo+iss\"]],\"start1\":4179,\"start2\":4179,\"length1\":16,\"length2\":22},{\"diffs\":[[0,\"ssue\"],[-1,\"+user-read\"],[1,\", read:user\"],[0,\") · \"]],\"start1\":4199,\"start2\":4199,\"length1\":18,\"length2\":19},{\"diffs\":[[0,\" hunnius\"],[-1,\" \"],[1,\"\\\n\"],[0,\"`mirror-\"]],\"start1\":4217,\"start2\":4217,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"bot`\"],[-1,\"\\\n(\"],[1,\" (write:\"],[0,\"repo\"]],\"start1\":4234,\"start2\":4234,\"length1\":10,\"length2\":16},{\"diffs\":[[0,\"user\"],[-1,\"-write\"],[0,\", li\"]],\"start1\":4251,\"start2\":4251,\"length1\":14,\"length2\":8},{\"diffs\":[[0,\"oria\"],[-1,\", dauerhaft) — alle Alt-Tokens widerrufen\"],[1,\" in Mirror-Creds, dauerhaft)\\\n\\\n## Verweise\\\n\\\n- Forgejo on moria — Installation Record (die großen Lessons)\\\n- Hetzner Server — Audit & Container Setup (Phasen-Status)\\\n- infra-Repo: jan/infra (docs/lessons.md)\"]],\"start1\":4268,\"start2\":4268,\"length1\":45,\"length2\":209}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-30T11:36:13.504Z
created_time: 2026-08-30T11:36:13.504Z
is_locked: 0
type_: 13