# 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 around `tools/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 to `tools/web/print-wbv2-live-status.mjs`. - `validate_incremental_context.py`: validates only the active batch metadata; unchanged inputs return `incremental-context-ok ... context=REUSED`. - `start_unattended.sh`: launches the scheduler and watchdog with `nohup` and `setsid` for process-level continuity. - `check_continuation_state.py` and `validate_web_context.py`: read-only WBV2 context and governance gates. - `prepare_web_task_context.py`: writes the canonical `tests/golden//task-context.json` through the repository checker. All scripts and reference documents use Blender terminology and paths. ## Start From the repository root: ```sh chmod +x my-tools/start_unattended.sh my-tools/start_unattended.sh python3 my-tools/show_blender_web_scheduler.py ``` Equivalent foreground command: ```sh 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 ```text 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: ```sh 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-` for Emscripten and temporary compiler caches. CPU compilation remains capped at the repository's required `-j8`; Chromium evidence stays single-worker for determinism.