← w3yh.xyz

journal day

Donnerstag, 19. März 2026

Tagesansicht des öffentlichen Journals: konkrete Changelog-Outputs, Incidents und kuratierte Notes, ohne dass der Index alles auf einmal rendert.

Aktivität an diesem Tag: Spitze

Donnerstag, 19. März 2026

codexopenclaw

Night-Plan-Builder auf Makro-Bloecke gezogen und die Naechte ab 21. Maerz umgebaut

fixed

  • **Night-Plan-Form:** die vorhandenen Night-Plans ab `2026-03-21` waren thematisch brauchbar, operativ aber noch 10er-Mikrotask-Saetze mit `20-25min` und `240s`-Timeouts.
  • **Head-Reviews:** `night-head-review.py` hing noch an alten Hardcodes fuer Task-Labels und Divisions und haette die neuen Makro-Bloecke sonst morgens falsch zusammengefasst.

updated

  • **workspace/scripts/build-night-plan.py:** Fallback-Naechte erzeugen jetzt `full-coverage-macro` mit 4 Worker-Bloecken plus 3 Head-Reviews; Head-Timeouts auf `600/900s` angehoben.
  • **workspace/agents/cron/night-head-review.py:** laedt Task-Labels, Owner und Divisions jetzt dynamisch aus dem jeweiligen `nightplan-YYYY-MM-DD.json` statt aus festen Legacy-Mappings; generische naechste Schritte fuer Makro-Bloecke statt alter Mikrotask-Textbausteine.
  • **workspace/memory/nightplan-2026-03-21.json bis workspace/memory/nightplan-2026-03-24.json:** alle vier gelockten Projektnaechte auf je 4 Worker-Bloecke plus 3 Head-Reviews umgestellt; Inhalte der alten 10 Mikrotasks wurden in groessere Makro-Bloecke zusammengezogen.
  • **workspace/tasks/todo.md:** `NIGHT-3` als erledigt markiert.

verified

  • **Python:** `python3 -m py_compile` fuer `build-night-plan.py` und `night-head-review.py` erfolgreich.
  • **Dry-Runs:** `night-plan-dry-run.sh` fuer `nightplan-2026-03-21.json` bis `nightplan-2026-03-24.json` komplett gruen.
  • **Builder-Probe:** ein frischer Test-Plan fuer `2026-03-25` kommt jetzt als `full-coverage-macro` mit `7` Tasks (`4` Worker + `3` Heads) heraus.
  • **Head-Review-Probe:** lokaler Review fuer `2026-03-21` zeigt die neuen Makro-Block-Titel korrekt statt alter Legacy-Labels.
codexopenclaw

Night-Action final auf `systemd --user` umgeschaltet

fixed

  • **Night-Action-Scheduler:** `nightaction:plan` und `nightaction:execute` liefen zwar schon ueber die neuen Host-Skripte, waren scheduler-seitig aber noch parallel als alte OpenClaw-Cronjobs hinterlegt und konnten damit doppelt feuern.

updated

  • **cron/jobs.json:** die alten Night-Action-Eintraege `nightaction:plan` und `nightaction:execute` auf `enabled: false` gesetzt, damit die historische `cron/jobs.json -> agentTurn -> Shell`-Kette fuer diese beiden Makro-Jobs nicht mehr aktiv ist.
  • **~/.config/systemd/user/nightaction-plan.timer + nightaction-execute.timer:** User-Timer per `systemctl --user enable --now` final aktiviert.
  • **workspace/tasks/todo.md:** `NIGHT-2` als erledigt markiert; `NIGHT-3` bleibt bewusst offen, damit die bestehenden Mikro-Plaene spaeter noch in echte Makro-Bloecke umgebaut werden koennen.

verified

  • **systemd --user:** beide Timer sind `enabled` und `active (waiting)`.
  • **Naechste Runs:** `nightaction-plan.timer` zeigt `2026-03-20 00:`, `nightaction-execute.timer` `2026-03-20 01:`.
  • **OpenClaw-Runtime:** der laufende `openclaw-gateway` haelt einen `inotify`-Watcher offen; fuer den Cutover war deshalb kein Gateway-Neustart notwendig.
codexopenclaw

Quiz-Deep-Link live repariert und Tyrone-Terminal-Feed am gewaehlten Ticker ausgerichtet

fixed

  • **spielideengenerator / Carpark Quiz Deep Link:** der blaue Homepage-Ballon fuehrte zwar auf `/carpark?mode=quiz`, aber die Carpark-App wertete den Query-Param nicht mehr aus und landete wieder nur im normalen Spielstart.
  • **thelonginvestor / TLI Feed Filter:** der Klick auf einen Portfolio-Ticker aktualisierte nur Chart und Header, nicht aber den `TLI FEED`.

updated

  • **carpark-brain-attack/src/app.js + spielideengenerator/public/carpark/src/app.js:** `mode=quiz` wird beim Initial-Load wieder verarbeitet; Carpark springt ins naechste sinnvolle Level, oeffnet direkt das Quiz und bereinigt den URL-Param anschliessend.
  • **thelonginvestor/src/app/page.tsx + src/components/NewsPanel/NewsPanel.tsx:** `selectedTicker` wird in den Feed durchgereicht; der Feed laedt fuer Ticker-Sichten mehr Material nach und filtert anschliessend robust client-seitig auf den gewaehlten Ticker.
  • **thelonginvestor/src/app/api/news/route.ts + src/app/api/insights/route.ts + src/app/api/analyses/route.ts:** optionalen `ticker`-Parameter und `force-dynamic`-Hinweis ergaenzt, damit serverseitige Ticker-Sichten nicht mehr nur vom Default-Pfad abhaengen.
  • **workspace/tasks/todo.md:** `S12` und `TT-7` als erledigt markiert.

verified

  • **spielgenerator.de live:** `https://www.spielgenerator.de/carpark/?mode=quiz` zeigt live verstecktes Hauptmenue, sichtbaren `gameContainer` und offenes `quizOverlay`.
  • **Tyrone Terminal:** lokaler Build gruen, PM2-App `tli-terminal` neu gestartet und die kombinierte Feed-Logik liefert fuer `ASTS` wieder echte tickerbezogene Eintraege aus News, Insights und Analysen.
codexopenclaw

spielgenerator live aktualisiert und Carpark-OG-Pool online gebracht

fixed

  • **spielideengenerator/src/data/games.ts:** Build-Blocker durch einen doppelten Objekttrenner im `games`-Array entfernt; die lokale Produktion baute davor mit einem `undefined`-Eintrag im Datensatz nicht mehr sauber.

updated

  • **carpark-brain-attack/scripts/og-intake.mjs:** `verify` und `apply` verstehen jetzt `--only`, damit solver-saubere Teilmengen aus noch unvollstaendigen Foto-Seiten frueh uebernommen werden koennen.
  • **carpark-brain-attack/PICTURES/intake/4.json:** drei weitere Original-Boards (`39`, `40`, `47`) aus `4.jpg` rekonstruiert, solver-verifiziert und als `accepted` markiert.
  • **carpark-brain-attack/src/data/ogPhotoLevels.js + spielideengenerator/public/carpark/src/data/ogPhotoLevels.js:** OG-Sammlung auf `25` accepted und `10` flagged erweitert.
  • **carpark-brain-attack/src/data/campaignLevels.js + spielideengenerator/public/carpark/src/data/campaignLevels.js:** aktiver Live-Pool jetzt OG-first mit `34` Levels: `25` solver-saubere Originale plus `9` Legacy-Bruecken/Tutorial-Boards.
  • **carpark-brain-attack/src/game/levelMigration.js + spielideengenerator/public/carpark/src/game/levelMigration.js:** Reihenfolge-Version auf `7` angehoben, damit alter Progress beim neuen OG-Pool sauber zurueckgesetzt wird statt auf falsche Levels zu zeigen.
  • **workspace/tasks/todo.md:** `spielgenerator`-Status auf den echten Live-Stand gebracht; `S1` erledigt und `CBA-2` auf den aktuellen OG-first-Pool umformuliert.

verified

  • **spielideengenerator:** `npm run build` nach dem `games.ts`-Fix wieder erfolgreich; einzig verbliebene Warnung bleibt die bekannte `useMemo`-Dependency in `src/app/page.tsx`.
  • **Vercel Production Deploy:** `npx vercel deploy --prod --yes --scope vibey434s-projects` erfolgreich; `spielideengenerator` ist unter `https://www.spielgenerator.de` live.
  • **Live-Checks:** `https://www.spielgenerator.de/carpark/` antwortet oeffentlich mit `200`, und der Live-DOM zeigt fuer Carpark jetzt `34` aktive Levels.
codexopenclaw

VPS-Tooling repariert, Root-FS entlastet und Night-Orchestrator fuer Night-Action entschieden

fixed

  • **VPS-Node-Toolchain:** `npm`, `npx` und `corepack` fuer `~/.nvm/versions/node/v22.22.1` sowie `~/.openclaw/tools/node-v22.22.0` aus den lokalen Node-Caches wiederhergestellt; verwaiste Global-CLIs in der OpenClaw-Toolchain nachinstalliert und verifiziert.
  • **Projekt-Dependencies:** `npm ci` erfolgreich fuer `spielideengenerator`, `clawledge`, `gym-tracker` und `stocktracker` ausgefuehrt.
  • **VPS-Basis-Tools:** `chromium-browser`/`chromium`, `postgresql-client`, `sqlite3`, `ffmpeg` und ImageMagick installiert bzw. verifiziert; auf Ubuntu 24 stehen fuer ImageMagick die klassischen Binaries `convert` und `identify` bereit.
  • **Root-FS-Druck:** akute Platznot auf `/` ueber offizielle Nutzer-Cache-Cleanups entschaerft: `npm cache clean --force`, `python3 -m pip cache purge`, `npx playwright uninstall --all` und `npx @puppeteer/browsers clear --path ~/.cache/puppeteer` haben die Root-Partition von `100%` mit nur `2.7M` frei auf `84%` mit rund `5.9G` frei gebracht.

added

  • **workspace/plans/night-orchestration-review-2026-03-19.md:** von der Kurznotiz zu einer echten Architektur-Gegenueberstellung ausgebaut: Report-Zielbild vs. aktuelle Night-Action, Pro/Contra der Optionen und ein phasenweiser Hybrid-Migrationsplan.
  • **workspace/plans/night-orchestration-review-2026-03-19.md:** nach Gegencheck mit Claudes Vergleichsreport weiter geschaerft; Endempfehlung jetzt explizit auf euer Setup zugeschnitten: `systemd --user` fuer Night-Makro-Jobs, JSON behalten, `flock` + Run-Manifest + Run-Ordner nachziehen.
  • **~/.config/systemd/user/nightaction-*.service/.timer:** User-Units fuer `nightaction:plan` und `nightaction:execute` angelegt; `systemd-analyze --user verify` und `systemctl --user daemon-reload` erfolgreich, aber noch nicht enabled.
  • **workspace/scripts/night-task-intake.py + workspace/memory/night-task-intake.json:** kleiner Intake-Pfad fuer explizite Tyrone-Night-Requests angelegt.
  • **workspace/scripts/build-night-plan.py:** neuer Plan-Builder, der passende Tyrone-Requests zu batch-orientierten Night-Bloecken verdichtet und sonst sauber auf den Full-Coverage-Fallback zurueckfaellt.
  • **workspace/scripts/nightaction-smoke-test.sh:** harmloser Smoke-Test-Runner fuer kontrollierte Live-Tests des Executors.

updated

  • **workspace/tasks/todo.md:** `NIGHT-1`, `OPS-1`, `OPS-2`, `OPS-3` und jetzt auch `OPS-4` als erledigt markiert; `NIGHT-2` bleibt als letzter Night-Action-Cutover-Punkt offen und verweist jetzt auf den erfolgreichen `nightaction-plan.service`-Smoke-Test plus gruenen Boundary-Dry-Run.
  • **workspace/agents/cron/nightaction-plan.sh + workspace/agents/cron/nightaction-execute.sh:** gemeinsamer `flock`-basierter Lock eingebaut, damit parallele Night-Starts sich nicht mehr gegenseitig ueberholen.
  • **workspace/agents/cron/nightaction-plan.sh:** baut neue Plaene nicht mehr nur als statischen Here-Doc, sondern ueber den neuen Builder; explizite Tyrone-Night-Auftraege koennen dadurch in die Night-Architektur einfliessen.
  • **workspace/agents/cron/nightaction-execute.sh:** unterstuetzt jetzt `PLAN_FILE_OVERRIDE` und `NIGHTACTION_RUN_TAG`, damit kontrollierte Live-Tests moeglich sind, ohne den echten Tagesplan zu ersetzen.
  • **workspace/HEARTBEAT.md + workspace/WORKFLOW_AUTO.md + workspace/plans/night-orchestration-review-2026-03-19.md:** klarer festgehalten, welche Auftragsarten nachts sinnvoll sind und wie Tyrone sie in die Night-Queue legt.

verified

  • **Night-Action-Plan-Unit:** `systemctl --user start nightaction-plan.service` lief manuell erfolgreich durch; der Service endet wie erwartet als `inactive (dead)` nach einem sauberen One-Shot-Lauf.
  • **Boundary-Dry-Run:** `bash workspace/scripts/night-plan-dry-run.sh workspace/memory/nightplan-2026-03-19.json` erfolgreich; der heutige 13er-Plan ist fuer den Preflight weiterhin guenstig.
  • **Night-Action-Execute-Live-Test:** `systemd-run --user` gegen einen harmlosen Smoke-Test-Plan erfolgreich; `nightaction.md` zeigt `smoketest-2026-03-19-165335 | Success: 1, Failed: 0`.

Incidents

Night Action Macro Plans
~40 mincodex

Problem: Die Night-Architektur war scheduler-seitig schon umgestellt, aber Builder und feste Themenplaene ab dem 21. Maerz liefen noch als Mikrotask-Saetze mit viel zu kurzen Timeouts; zusaetzlich haetten die Head-Reviews dabei noch alte Task-Namen gespiegelt

Ursache: `build-night-plan.py` fiel fuer Fallbacks noch auf alte 13er-Defaults zurueck, die gelockten Projektplaene `2026-03-21` bis `2026-03-24` waren nie auf Makro-Bloecke umgebaut worden, und `night-head-review.py` nutzte feste Legacy-Label-Maps statt der echten aktuellen Plaene

Fix: Builder auf `full-coverage-macro` mit 4 Worker-Bloecken plus 3 Heads umgestellt, `night-head-review.py` auf dynamische Plan-Metadaten gezogen und die vier gelockten Projektnaechte auf Makro-Bloecke mit realistischen Laufzeiten/Timeouts umgebaut; Dry-Runs und Head-Review-Probe erfolgreich

Night Action Final Cutover
~10 mincodex

Problem: Die Night-Action war funktional schon auf `systemd` vorbereitet, aber scheduler-seitig noch parallel ueber alte OpenClaw-Cronjobs aktiv und damit nicht sauber auf einen einzigen Pfad umgestellt

Ursache: `nightaction:plan` und `nightaction:execute` standen in `cron/jobs.json` noch auf `enabled: true`, waehrend die neuen User-Timer zwar vorhanden, aber noch nicht aktiviert waren

Fix: Beide Alt-Eintraege in `cron/jobs.json` deaktiviert, `nightaction-plan.timer` und `nightaction-execute.timer` per `systemctl --user enable --now` aktiviert und den laufenden Gateway auf vorhandenen `inotify`-Watcher geprueft, damit kein Restart noetig ist

Night Action Execute Testability
~15 mincodex

Problem: Der Executor war fuer den finalen Live-Test nur ueber den echten Tagesplan aufrufbar; ein kontrollierter Smoke-Test haette sonst den produktiven Night-Plan ersetzen muessen

Ursache: `nightaction-execute.sh` kannte keinen Plan-Override und keinen separaten Run-Tag fuer Testlaeufe

Fix: `PLAN_FILE_OVERRIDE` und `NIGHTACTION_RUN_TAG` in `nightaction-execute.sh` eingebaut, harmlosen `nightaction-smoke-test.sh` hinzugefuegt und den Live-Test via `systemd-run --user` erfolgreich gegen einen Testplan gefahren

Night Task Intake
~25 mincodex

Problem: Explizite Dominik->Tyrone-Night-Auftraege konnten noch nicht sauber in die neue Night-Plan-Architektur einfliessen

Ursache: Der Planer hatte nur Default-/Locked-Plans, aber keinen eigenen Intake-Pfad fuer night-taugliche Tyrone-Requests und keine Batch-Uebersetzung in Makro-Bloecke

Fix: `memory/night-task-intake.json`, `scripts/night-task-intake.py` und `scripts/build-night-plan.py` eingefuehrt; `nightaction-plan.sh` baut neue Plaene jetzt intake-basiert und verdichtet geeignete Requests zu Night-Bloecken

OpenClaw VPS Disk Pressure
~15 mincodex

Problem: Das Root-Filesystem `/` stand nach Paketlauf und Browser-Runtimes bei `100%`; erste Systemtrigger liefen schon in `No space left on device`

Ursache: Die Root-Partition ist nur rund `38G` gross, waehrend `npm`-, `pip`-, Playwright- und Puppeteer-Caches ueber Zeit mehrere GB angesammelt hatten

Fix: Nutzer-Caches ueber offizielle Cleanup-Pfade bereinigt (`npm cache clean --force`, `python3 -m pip cache purge`, `npx playwright uninstall --all`, `npx @puppeteer/browsers clear --path ~/.cache/puppeteer`) und `/` damit auf `84%` mit rund `5.9G` frei gebracht

Night Action Scheduler Cutover
~20 mincodex

Problem: Die Night-Makro-Jobs liefen operativ lokal, hingen scheduler-seitig aber weiter in einer `cron/jobs.json` -> `agentTurn` -> Shell-Kette ohne Doppelstart-Schutz

Ursache: Die Night-Action wurde historisch ueber OpenClaw-Prompt-Jobs gehoben; fuer rein lokale Shell-Runs fehlten direkte Host-Units und ein globaler Lock

Fix: `systemd --user`-Units fuer `nightaction-plan` und `nightaction-execute` angelegt, User-Daemon sauber validiert/reloaded und einen gemeinsamen `flock`-Lock in beide Night-Skripte eingebaut; finaler Cutover bleibt nach Paralleltest offen

OpenClaw VPS Tooling
~45 mincodex

Problem: `npm`/`npx`/`corepack` waren in zwei Node-Installationen kaputt, mehrere Repos hatten keine `node_modules`, und die VPS-Basistools fehlten noch

Ursache: Sowohl `~/.nvm/versions/node/v22.22.1` als auch `~/.openclaw/tools/node-v22.22.0` hatten verwaiste Symlinks auf fehlende `lib/node_modules`; die Paketbasis war nie nachgezogen

Fix: Node-Toolchains aus lokalen Tarballs repariert, fehlende Global-CLIs neu installiert, `npm ci` in vier Projekten ausgefuehrt und `chromium`/`psql`/`sqlite3`/`ffmpeg`/ImageMagick verifiziert; dabei Root-FS als neues Risiko identifiziert

Night Action Orchestration Review
~20 mincodex

Problem: `NIGHT-1` verwies auf einen nicht existierenden Report-Pfad und die Scheduler-Entscheidung fuer Night-Action war noch offen

Ursache: Der Deep-Research-Report landete unter `media/inbound`, waehrend `todo.md` noch auf einen alten Zielpfad zeigte; zugleich laufen die Night-Makro-Jobs heute noch als `agentTurn`-Cron-Huelle

Fix: echten Report-Pfad dokumentiert, Review-Notiz angelegt und `systemd.timer` als Ziel-Orchestrierung fuer die Night-Action-Makro-Jobs festgehalten

Carpark Brain Attack / OG Intake
~35 mincodex

Problem: `og-intake apply` hatte die OG-Sammlung unlesbar gemacht; ausserdem war `1.jpg` nur implizit in Changelog/OG-Datei, aber nicht als reproduzierbarer Intake-Batch vorhanden

Ursache: Der Writer in `scripts/og-intake.mjs` schrieb `cars[]` ohne Kommas zwischen den Fahrzeugobjekten; dadurch wurden `src/data/ogPhotoLevels.js` und der Mirror syntaktisch kaputt. Gleichzeitig fehlte fuer `1.jpg` ein Batch-Manifest als kanonische Quelle

Fix: Formatter repariert, `rebuild`-Command fuer Neuaufbau aus `PICTURES/intake/*.json` ergänzt, `PICTURES/intake/1.json` rekonstruiert, Crops fuer `1.jpg` erzeugt und beide OG-Dateien erfolgreich neu aufgebaut/verifiziert

Carpark Brain Attack / Campaign Pool
~40 mincodex

Problem: Das Live-Spiel lief noch auf einem alten 157er-Mixpool statt auf dem inzwischen verifizierten OG-Bestand; ein simples Legacy-Mapping haette alten Progress auf inhaltlich andere Level gezogen

Ursache: Die Runtime hing weiter an `src/data/levels.js` + alter Balancing-Logik. Fuer den neuen OG-first-Pool gab es weder einen eigenen Campaign-Entry-Point noch eine sichere Reset-Strategie fuer gespeicherten Progress/Best-Moves

Fix: Neuer `campaignLevels.js`-Pool mit 22 OG-Originalen + 9 Tutorial-/Brueckenlevels eingefuehrt, App/Mirror darauf umgestellt, `LEVEL_ORDER_VERSION` auf 6 gehoben, Progress/Best-Moves bei Altversionen auf leer gesetzt und den Public-Mirror per lokalem Chromium-Run verifiziert

spielideengenerator / Prod Build
~15 mincodex

Problem: Der Produktions-Build fuer den Live-Deploy brach in `src/data/games.ts` ab, noch bevor Vercel die neue Carpark-Version ausliefern konnte

Ursache: Im `games`-Array stand ein doppelter Trenner `},,`, wodurch effektiv ein `undefined`-Eintrag entstand und TypeScript die Rueckgabe nicht mehr als `Game[]` akzeptierte

Fix: Ueberzaehliges Komma in `src/data/games.ts` entfernt, `npm run build` erneut erfolgreich ausgefuehrt und danach den Produktiv-Deploy auf Vercel abgeschlossen

Carpark Brain Attack / Partial OG Apply
~35 mincodex

Problem: Neue solver-saubere Originale aus einer noch unvollstaendigen Buchseite liessen sich nicht getrennt in die OG-Sammlung uebernehmen; ausserdem waere alter Progress nach der Kampagnen-Erweiterung auf verschobene Level gemappt worden

Ursache: `scripts/og-intake.mjs` konnte `crop --only`, aber `verify/apply` nicht; dadurch blockierten `pending`-Boards derselben Seite jeden fruehen Merge. Gleichzeitig blieb `LEVEL_ORDER_VERSION` trotz neuer OG-Level im Live-Pool unveraendert

Fix: `verify/apply --only` bis in die Batch-Logik verdrahtet, `OG_4_39`/`40`/`47` solver-verifiziert und in Source + Mirror uebernommen, danach `LEVEL_ORDER_VERSION` fuer Source + Mirror auf `7` gehoben

spielgenerator / Quiz Deep Link
~15 mincodex

Problem: Der blaue Homepage-Ballon zeigte auf `/carpark?mode=quiz`, aber Carpark selbst ignorierte den Query-Param und landete wieder nur im normalen Spielstart

Ursache: Nach frueheren Umbauten existierte der Link noch, aber der Boot-Pfad in `app.js` wertete `mode=quiz` nicht mehr aus

Fix: Initial-Route-Handling fuer `mode=quiz` in Source + Mirror eingebaut: naechstes sinnvolles Level laden, Quiz direkt oeffnen, URL-Param bereinigen; lokal und live auf `spielgenerator.de` verifiziert

Tyrone Terminal / Selected Ticker Feed
~15 mincodex

Problem: Im Terminal aktualisierte ein Ticker-Klick das Chart-Visual, aber der darunterliegende `TLI FEED` blieb auf einem unfiltrierten Mix stehen

Ursache: `selectedTicker` wurde nicht in den Feed durchgereicht; zusaetzlich fehlte eine robuste client-seitige Ticker-Selektion ueber die gemischten News/Insights/Analysen

Fix: `NewsPanel` an `selectedTicker` gekoppelt, groesseren Feed-Pool nachgeladen und client-seitig auf den gewaehlten Ticker reduziert; dazu die drei Feed-APIs um optionalen `ticker`-Param erweitert und PM2-App `tli-terminal` neu gestartet

Persönliches Build-Journal. Aufgaben werden über ein Agentensystem (OpenClaw, verschiedene LLMs) per Cron- und Telegram-Trigger ausgeführt; die Heatmap zeigt eine relative Compute-Aktivität in fünf Stufen.