Blender Web Unattended Tools
my-tools is the project-local launcher and observability layer for the
Blender 5.2 Web/WASM capability workflow. The repository's Node tools remain
authoritative for queue ownership, source mapping, Chromium evidence, handoff,
commit and push.
Entrypoints
run_blender_web_scheduler.py: foreground wrapper aroundtools/web/run-wbv2-scheduler.mjs.watch_blender_web_scheduler.py: single-instance watchdog; it only restarts a missing scheduler and stops on a terminal or blocked checkpoint.show_blender_web_scheduler.py: delegates live RUNNING/IDLE/BLOCKED state totools/web/print-wbv2-live-status.mjs.validate_incremental_context.py: validates only the active batch metadata; unchanged inputs returnincremental-context-ok ... context=REUSED.start_unattended.sh: launches the scheduler and watchdog withnohupandsetsidfor process-level continuity.check_continuation_state.pyandvalidate_web_context.py: read-only WBV2 context and governance gates.prepare_web_task_context.py: writes the canonicaltests/golden/<task>/task-context.jsonthrough the repository checker.
All scripts and reference documents use Blender terminology and paths.
Start
From the repository root:
chmod +x my-tools/start_unattended.sh
my-tools/start_unattended.sh
python3 my-tools/show_blender_web_scheduler.py
Equivalent foreground command:
python3 my-tools/run_blender_web_scheduler.py --max-iterations 0 --commit --push
The scheduler reads docs/EXECUTION_QUEUE.md, runs the current authorized
nextTask through the native Blender/WASM production path, and writes all
receipts and checkpoints under tests/golden/WBV2. It does not fabricate a
task, bypass a blocked checkpoint, or replay a terminal task.
Runtime State
tests/golden/WBV2/continuous-scheduler.json
tests/golden/WBV2/continuous-scheduler.log
tests/golden/WBV2/continuous-guardian.json
tests/golden/WBV2/continuous-supervisor.json
tests/golden/WBV2/my-tools-scheduler.json
tests/golden/WBV2/my-tools-watchdog.json
For machine-readable live state:
python3 my-tools/show_blender_web_scheduler.py --json
Implementation cycles use a bounded fast path: each module manifest carries a
stable batchId and selected record IDs, context metadata compares
bytes/mtime_ns before hashing, and the outer scheduler owns planner and
continuation rotation. Full API, format, Chromium, performance and release
gates remain an explicit final-audit operation.
--commit --push is enabled by the launcher and can be disabled for a local
dry run with WBV2_AUTO_COMMIT=0 WBV2_AUTO_PUSH=0.
On Linux, the launcher uses /dev/shm/blender-wasm-<uid> for Emscripten and
temporary compiler caches. CPU compilation remains capped at the repository's
required -j8; Chromium evidence stays single-worker for determinism.