This private repository is the standalone Infobus slice extracted from
ming1523/openclaw-backup. It contains source, contracts, skills, Workbench UI,
and runbook material for the OpenClaw message bus. Runtime queue state, claims,
logs, snapshots, PIDs, and account state are intentionally excluded.
Included:
- long-running task event/status bus scripts
- lane dispatcher and the minimal support modules it imports
- queue backpressure and dead-shell sweeper utilities
- Workbench long-running task bus page
- long-running task skills
- system-governance contracts and Infobus runbooks
Excluded:
- GitHub learning producers
- PR idea ablation producers/monitors
- teacher review, reward, and promotion business adapters
- runtime queue files, claims, snapshots, worker logs, and account state
/Users/ming/code/infobus is the canonical local data bus root for cross-workflow automation state.
Do not create parallel bus truth under workspace-local state directories.
Canonical long-running task bus data lives here:
/Users/ming/code/infobus/long-running-tasks/
Canonical files:
/Users/ming/code/infobus/long-running-tasks/events.jsonl
/Users/ming/code/infobus/long-running-tasks/actions.jsonl
/Users/ming/code/infobus/long-running-tasks/task-queue.jsonl
/Users/ming/code/infobus/long-running-tasks/claims.jsonl
/Users/ming/code/infobus/long-running-tasks/watchdog-state.json
/Users/ming/code/infobus/long-running-tasks/task-snapshots.json
Workbench or OpenClaw workspace files may project or cache this data for serving, but those files must be treated as generated projections, not authoritative truth.
- Producers append facts to
events.jsonl. - Producers append required handoff work to
actions.jsonl. - Producers append independent schedulable work to
task-queue.jsonlwhen a workflow is using the unified queue. - Dispatchers append lane claims and terminal claim results to
claims.jsonl. - Watchdogs write compact monitoring state to
watchdog-state.json. - Snapshot builders write current task summaries to
task-snapshots.json. - No producer should write another long-running task bus root unless a migration note in this directory explicitly says so.
Durable result writes belong to Python adapters, not to model lanes.
For unified queued work, every task envelope must carry a result contract:
taskId: "<stable unique task id>"
workflow: "<workflow>"
runId: "<parent run id>"
runDir: "<absolute run directory>"
resultOwnership: "python-adapter"
resultAdapter: "<github-learning|submit-pr-candidate|pr-review-followup|...>"
expectedResultPath: "<absolute workflow-owned result file, if applicable>"
controllerStatus: "<absolute controller-status.json, if applicable>"The model lane may produce candidate text, stdout, or scratch output. It must not decide durable write destinations or promote results into tracker, wiki, controller status, or other workflow truth. The Python adapter must match by taskId, validate the adapter-specific result, then write to the declared destination and emit bus events.
Domain routes remain in their existing skills/scripts. Infobus is the shared monitoring and handoff layer, not a replacement for domain logic.
Examples:
- submit-PR idea discovery keeps using the open-source harness and submit-PR controller.
- GitHub learning keeps using its scheduler and source-pool logic.
- PR review follow-up keeps using its tracker/reviewer/CI polling logic.
Those routes should call:
/Users/ming/code/infobus/scripts/long_running_tasks.py emit-event ...
/Users/ming/code/infobus/scripts/long_running_tasks.py build-snapshots
/Users/ming/code/infobus/scripts/long_running_tasks.py watchdog-onceat startup, worker dispatch/return, fallback request, teacher-review request, durable writeback, completion, and blocker transitions.
Readers should prefer this directory first.
If a reader must consume a legacy projection such as:
/Users/ming/.openclaw/workspace/state/long-running-tasks-status.json
it must treat that file as a Workbench compatibility projection and should link back to this infobus root in the UI or report.