Commit all 7 recorded clips to docs/videos/ (alongside the existing docs/screenshots/)
instead of leaving them in the gitignored video-guides/ folder from the earlier
feasibility spike - they're meant to be shipped, discoverable assets now, not scratch
output. scripts/record-video-guides.mjs writes there by default going forward.
Added a "Video Guides" section to README.md/README.sv.md (Getting started + Interface
tour groups) and a matching in-app "Video guides" panel on the Guide page, right after
the overview cards - the most discoverable spot for a brand-new user. Links point at
/docs/videos/<name>.mkv, served by the server's existing /docs static route.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
connect-decoder, add-drivers-cars, create-race, and run-a-session join the 3 existing
tab-focused clips, so the video guides now cover the actual first-run path a new user
hits, not just this session's UI restructuring.
record-video-guides.mjs gained a prepare() hook (for clips needing a live dependency,
like a fake decoder socket, before the app is seeded) and a clickNav() helper that
exercises the app's real client-side navigation instead of a full page reload, so
switching views in a clip looks like the smooth transition a real user sees.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
espeak-ng's formant synthesis was reported as barely intelligible. Piper is a small
local neural TTS with the same offline, no-cloud-service properties but far more
natural speech; its default WAV output format already matched what the sync pipeline
assumed, so only the synthesis call itself needed to change.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The clips were silent screen captures - the user's actual ask was for someone talking
through what's happening. Each clip step now carries a narration line synthesized
offline via espeak-ng; the recording paces itself to each line's real spoken duration,
and the final audio track is built from the real measured per-line start times (adelay +
amix) so narration and on-screen action stay in sync over a 30+ second clip instead of
drifting against an idealized schedule.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CDP screencast -> ffmpeg -> MKV, driven against the same isolated server/browser pattern
the test suite already uses. Recorded three short clips demonstrating this session's tab
and schedule features; output goes to the gitignored video-guides/ folder rather than the
repo since these are sizeable binaries.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>