2.0 KiB
Blender Web Unattended Scheduler
This reference describes the process contract for this repository. It is a thin launcher around the production WBV2 scheduler; it is not a second task ledger.
Authority
- Queue pointer:
docs/EXECUTION_QUEUE.md - Task cards:
docs/tasks/WBV2-*.md - Parent/child evidence:
tests/golden/<task>/manifest.json - Dynamic source inventory:
tests/golden/WBV2/dynamic-inventory.json - Scheduler checkpoints:
tests/golden/WBV2/continuous-*.json - Live state:
node tools/web/print-wbv2-live-status.mjs --json
The Node scheduler validates the parent manifest, checks the explicit source
mapping, delegates one atomic iteration to guardian/supervisor, verifies the
handoff and (when enabled) commits and confirms origin/main. A missing task,
hash drift, failed command, unknown process state or blocked checkpoint stops
the loop with evidence intact.
Start and Stop
my-tools/start_unattended.sh
python3 my-tools/show_blender_web_scheduler.py
For a foreground run:
python3 my-tools/run_blender_web_scheduler.py --max-iterations 0 --commit --push
The launcher starts one scheduler and one watchdog. Lock files under
tests/golden/WBV2 prevent duplicate instances. Send SIGINT or SIGTERM to
the wrapper PID to stop; the watchdog will not restart a deliberately stopped
or blocked run.
Safe Recovery
The watchdog may restart a scheduler only when it is absent and the queue is
not terminal or blocked. It never retries a running, started or unknown
checkpoint because the child may have performed an unknown write. Re-running
the launcher after inspecting the checkpoint is the supported recovery path.
Use these read-only checks before a new run:
python3 my-tools/check_continuation_state.py
python3 my-tools/validate_web_context.py
node tools/web/check-execution-control-plane.mjs
No script in my-tools synthesizes Blender results. All behavior and evidence
must come from the compiled Blender WebEngine/WASM production path and the
Chromium gates declared by the active task card.