← w3yh.xyz

journal day

Donnerstag, 26. 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: mittel

Donnerstag, 26. März 2026

codexopenclaw

PF-1: PostFast Limit-Preflight vor Scheduling

changed

  • **`thelonginvestor/scripts/postfast-dispatch.mjs`** — Vor dem eigentlichen `createPost()` laeuft jetzt ein konservativer Preflight gegen PostFast-Accounts und bestehende Posts.
  • **Slot-Guardrails** — Daily-Limit (Default X: 6) und Rolling-24h-/Org-Limit (Default X: 8) werden vor dem Scheduling ausgewertet; bei knappen Slots wird der Batch gekuerzt, bei 0 verfuegbaren Slots wird sauber geskippt statt in API-Fehler zu laufen.
  • **`--preflight-only`** — Neuer read-only Modus fuer Live-Checks gegen PostFast ohne Scheduling und ohne Kimi-Call.

verification

  • `node --check `thelonginvestor/scripts/postfast-dispatch.mjs`
  • `node `thelonginvestor/scripts/postfast-dispatch.mjs` --account @th3_m0l3 --schedule now+5m --max 1 --preflight-only`
codexopenclaw

PF-2 Teil 1: Read-only Queue ↔ PostFast Sync-Report

changed

  • **`thelonginvestor/scripts/postfast-dispatch.mjs`** — Neuer `--sync-report` Modus vergleicht die lokale `tweet-queue.json` read-only mit den live gelisteten PostFast-Posts fuer den Ziel-Account.
  • **Sync-Diagnostik** — Report zeigt Queue-/PostFast-Counts, Limit-Snapshot, fehlende `postfastId`s, lokale Future-Slots ohne Remote-Match, untracked Remote-Posts sowie einfache Dedupe-Kandidaten.
  • **Kein Write-Back** — Bewusst nur Sichtbarkeit und Drift-Erkennung; Reparatur-/Apply-Logik bleibt als naechster Schritt offen.

verification

  • `node --check `thelonginvestor/scripts/postfast-dispatch.mjs`
  • `node `thelonginvestor/scripts/postfast-dispatch.mjs` --account @th3_m0l3 --sync-report`

current findings

  • **1 lokaler Future-Slot fehlt in PostFast** — Queue enthaelt einen fuer die Zukunft markierten Eintrag, der per `postfastId` aktuell nicht in PostFast auffindbar ist.
  • **3 lokale Eintraege ohne `postfastId`** — Historische/teilweise manuelle Queue-Eintraege sind lokal terminiert, aber nicht sauber an einen PostFast-Post gekoppelt.
codexopenclaw

OPS-8 Teil 1: Night-Action Doppeltrigger entschärft

changed

  • **`.openclaw/cron/jobs.json`** — `nightaction:plan` und `nightaction:execute` in der Cron-Jobliste deaktiviert, damit Night-Action nicht mehr parallel über Agent-Cron und user-systemd getriggert wird.
  • **Source of Truth** — Night-Action bleibt vorerst an den aktiven user-systemd-Timern (`nightaction-plan.timer`, `nightaction-execute.timer`) hängen; Cron dient für diese beiden Läufe nicht mehr als zusätzlicher Trigger.

follow-up

  • **Live-Verifikation offen** — Der nächste reguläre 01:00/02:01-Lauf soll bestätigen, dass Plan/Execute nur noch einmal anlaufen. Die 03:30-/Lane-Recovery bleibt als eigener Folgeschritt in `todo.md` (`OPS-8`, `NA-14`).

Incidents

Night-Action Scheduling
~15 mincodex

Problem: `nightaction:plan` und `nightaction:execute` liefen doppelt ueber Agent-Cron und user-systemd-Timer, wodurch Parallelstarts und schwer lesbare Run-Zustaende drohten

Ursache: Night-Action wurde historisch an zwei Trigger-Systeme gehaengt; Cron-Jobs blieben aktiv, obwohl die user-systemd-Timer bereits produktiv liefen

Fix: Die beiden Night-Action-Cron-Trigger in `.openclaw/cron/jobs.json` deaktiviert und systemd als vorlaeufige Source of Truth belassen; Live-Verifikation fuer den naechsten Lauf in `todo.md` vermerkt

PostFast Dispatch
~25 mincodex

Problem: Der Dispatcher schedulte Tweets weiter blind, obwohl Daily-/Org-Limits als Produktionsproblem bereits mehrfach dokumentiert waren

Ursache: `postfast-dispatch.mjs` hat vor `createPost()` weder Account-Nutzung noch bereits geplante Posts geprueft; Failures wurden erst nach API-Antwort sichtbar

Fix: Konservativen Limit-Preflight in `postfast-dispatch.mjs` eingebaut: Accounts + Posts lesen, Daily-/24h-Slots herleiten, Batch bei Bedarf kuerzen oder sauber skippen; zusaetzlich `--preflight-only` fuer gefahrlosen Live-Check hinzugefuegt und gegen PostFast verifiziert

Queue ↔ PostFast Drift
~30 mincodex

Problem: Lokale Queue und PostFast konnten auseinanderlaufen, ohne dass morgens sichtbar war, welche Slots wirklich remote existieren

Ursache: Es gab keine read-only Bestandsaufnahme zwischen `tweet-queue.json` und den live gelisteten PostFast-Posts; fehlende `postfastId`s und verlorene Remote-Schedules blieben bis zum Posting-Fail unsichtbar

Fix: `postfast-dispatch.mjs --sync-report` eingefuehrt: vergleicht Queue vs. PostFast live, zeigt Limit-Snapshot, fehlende `postfastId`s, fehlende Remote-Matches und Dedupe-Kandidaten; erster Lauf fand 1 fehlenden Future-Slot und 3 lokale Eintraege ohne `postfastId`

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.