Skip to content

Narrated progress report β€” piper-tts 🎧 Narrated tab#144

Merged
mvalancy merged 1 commit into
devfrom
feat/dashboard-narration-playback
Jun 20, 2026
Merged

Narrated progress report β€” piper-tts 🎧 Narrated tab#144
mvalancy merged 1 commit into
devfrom
feat/dashboard-narration-playback

Conversation

@mvalancy

Copy link
Copy Markdown
Member

A narrated walkthrough of progress in the live dashboard, building on the narration-script builder (#143).

  • npm run dashboard:narrate (make dashboard-narrate) β†’ scripts/narrate-report.mjs: gathers real data (newest unified runs across both repos, recently-shipped commits, live perf metrics, feature-tour clips), renders each segment with piper-tts (high-quality female voice en_US-lessac-high) + ffmpeg, writes audio + a narration.json manifest + a combined track.
  • Server: GET /api/narration + GET /narration/<file>.mp3 (path-safe, mp3-only, HTTP Range; shared streamFile).
  • UI: 🎧 Narrated tab β€” each segment's audio plays while the synced media (trend chart / live video / screenshot) shows above + transcript below, auto-advancing; immune to live-update re-render.

Voices + audio are under the gitignored test-artifacts/. Verified: 39 unit tests; manifest 14 segments/~2.5 min; mp3 Range serving; traversal/non-mp3 β†’ 400; browser playback renders chart + video, survives a poll cycle, 0 console errors.

πŸ€– Generated with Claude Code

Builds on the narration-script builder (#143). Adds the generator + playback:

- scripts/narrate-report.mjs (npm run dashboard:narrate / make dashboard-narrate):
  gathers REAL data β€” newest unified runs across both repos, recently-shipped
  commits, live perf metrics, the feature-tour clips β€” feeds buildNarration, then
  renders each segment to audio with piper-tts (high-quality female voice,
  en_US-lessac-high) + ffmpeg, plus a combined track and a narration.json manifest.
- server.mjs: GET /api/narration (manifest) + GET /narration/<file>.mp3 (path-safe,
  mp3-only, HTTP Range); factored streamFile() shared with media serving; mp3 MIME.
- app.mjs + page.mjs: a "🎧 Narrated" tab β€” plays each segment's audio while the
  synced media (trend chart / live video clip / screenshot) shows above and the
  transcript below, auto-advancing; live run updates no longer disturb the player.

Voices + audio live under the already-gitignored test-artifacts/. Verified:
39 unit tests; manifest 14 segments / ~2.5 min; mp3 served with Range; traversal
+ non-mp3 rejected (400); browser playback renders chart + video media, survives a
server poll cycle, 0 console errors.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mvalancy mvalancy merged commit 9268220 into dev Jun 20, 2026
3 checks passed
@mvalancy mvalancy deleted the feat/dashboard-narration-playback branch June 20, 2026 02:56
@github-actions

Copy link
Copy Markdown

πŸ§ͺ Comprehensive Test Suite

  • Unit suites (Node 18.x & 20.x) β€” core, web, server, mcp-server: βœ… passed
  • Installer & deploy config: βœ… passed

Full-stack smoke gate runs in the CI workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant