Files
workinf_Blender_Wasm/my-tools/README.md
mes123456 b28b365f3a
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
perf(web): add idempotent batch verification fast paths
2026-09-03 20:29:51 +08:00

77 lines
2.8 KiB
Markdown

# 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>/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-<uid>` for Emscripten and
temporary compiler caches. CPU compilation remains capped at the repository's
required `-j8`; Chromium evidence stays single-worker for determinism.