All 51 video tutorials as Watchwright tests in tutorials/ (T00-T12, A01-A19, L01-L06, N01-N05, E1-E4, AI1-AI4), with the Tutor fixes found while recording them.
* fix(tutorials): cut page loads out of the videos
go() waits for the line being spoken, then the page load and the canvas
clean-up are cut from the video instead of playing under the narration.
* fix(tutorials): open the page before the line that talks about it
A line spoken before go() played over the previous page (at the start of a
take, the last take's canvas). Load first, then speak; a take that opens a
page first starts after that load.
* fix(tutorials): never wheel-scroll on the canvas, where the wheel zooms
* chore(tutorials): T04 hides Hero and Outfit once the combine uses them
* chore(tutorials): show WP Debug while the showcase images land
* chore(tutorials): T07 templates: save, load and edit Prompt Assembler templates
* chore(tutorials): T08 bundles; keep WP Debug above the captions
* chore(tutorials): T09 Context node, A01 tag groups, hide unused variables, WAI checkpoint
- T09: seed after-run modes, item seed lock, row menu, per-node edit, node help
- A01: tag groups (descriptive and accepts), $gear.SHOES; Travel gear in library.json
- T04, T05, T08 hide variables no template prints; T08 opens its bundles before folding them
- Fast-forward waits for the caption so it no longer flashes past
- WP Debug refits after each run; a tall Context folds its rows first
- Default checkpoint waiIllustriousSDXL_v170
* fix(tutorials): render starts a sped-up part after the caption on screen ends
* fix(tutorials): WP Debug sits snug under the Context; node search retries; T09 picks Randomize
* style(tutorials): wrap a long line in speak.py
* fix(tutorials): keep voice in sync, bigger previews, one bundle open at a time
render.mjs makes the recording constant frame rate before cutting it (the
recorder only writes changed frames, so still stretches dropped out at each
cut and the picture ran ahead of the voice), lines the voice up at every
sync mark and paints the marks out. The hand waits until the voice is
partway into a line, and page loads no longer wait for the line to end.
Nodes sit higher and the Assembler further left, so the preview and the
Debug rows fit; T08 opens one bundle at a time; T09 really sets Randomize.
Adds the tutorials/ Watchwright pack (T01 "Your first random prompt"), Kokoro voice lines and render.mjs; bench resetLibrary checks the fixture's own module count.