Skip to content

v1.4.7 — voice-paced captions + verification stamps + demo discipline

Latest

Choose a tag to compare

@marcushyett marcushyett released this 01 May 22:38
· 19 commits to main since this release

Three viewer-facing fixes bundled.

1. Captions now track voice exactly

WordCaption was clamping each word to a 0.28s minimum frame budget. When narration sped up (up to 1.5×) to fit a click window, captions visibly lagged the voice — every page would finish a few hundred ms after the spoken line. Fixes:

  • Drop the per-word floor when voice is provided; let the highlight track the voice exactly.
  • Cap the effective caption span at the segment duration so a sequence cut-off can't make captions outrun the on-screen voice.
  • Pick the latest started caption page over an earlier still-fading one — a slow page-out can no longer visually block a page that's already started speaking.

2. Verification stamps over the video

New animated overlay drawn at the EXACT moment the agent declared each goal's outcome — a green check (pass), red cross (fail), or grey dash (skipped) with the goal's shortLabel below it. 1.8s lifetime, de-overlaps when goals end close together. Punctuates the recording so viewers see "this thing was just verified" without having to wait for the outro checklist.

Hand-drawn SVG (no emoji) with stroke-dash drawing animation, spring scale-in, and label slide-up.

3. Demo discipline — kills the "click and re-check the same thing" loop

The agent was clicking + screenshotting + re-snapshotting + re-clicking the same surface multiple times per goal. From the viewer's perspective, that's dead video — the same thing happening over and over with no forward progress.

Both fast and meticulous prompts now open with an explicit:

ONE GOAL = ONE DEMO BEAT — ACT (1–3 user actions) → VERIFY (one check) → OUTCOME → STOP. The first verification IS the verdict. Once you've seen the success state once, your next message is OUTCOME. No 'just to be sure' second screenshot.

The stuck-loop tripwire now fires on the second occurrence (was third) and explicitly names the cases: re-screenshotting / re-snapshotting / re-clicking / re-typing a surface you already touched in this goal.

Versions kept in sync

  • package.json → 1.4.7
  • plugin/.claude-plugin/plugin.json → 1.4.7
  • v1 tag force-pushed to point at this commit