Skip to main content
This page lists every DeckTalk release, newest first. DeckTalk follows semantic versioning. A change to a file format or to the page contract raises the minor version. It comes with a migration note. The file formats are decktalk.toml, cues.json, and the build artifacts. After an upgrade, run decktalk runtime to update deck/decktalk-runtime.js.
featurefix
2026-09-15
Features
  • beats: warn when a cue phrase occurs more than once in its section (1174081)
  • clip: add decktalk clip and decktalk words (846de9f)
  • narrate: add lead_seconds and tail_seconds, and allow hold_seconds on any page section (ce4baf9)
  • narrate: print the take plan in a dry run, and add —json (bd34f89)
  • preflight: check a voiced build before it spends credits or records (6af0507)
  • runtime: list each step’s cues in the catalog, and freeze just before a cue (fe329dd)
  • verify: check that the cut into a carries_previous section does not pop (91e6578)
  • verify: mark a cue that passes by a thin change as THIN CHANGE? (ffc09b6)
Bug Fixes
  • assemble: warn about a recording that measure has not read (95896c0)
  • narrate: refuse a silent run over voiced takes unless forced (6517ebc)
  • narrate: stop padding a cached take again on every run (93d643a)
  • verify: count only the sections in decktalk.toml (32112eb)
  • verify: fit probes and controls between close cues (f4dee0e)
feature
2026-09-14
Features
  • assemble: caption the speech inside a clip section from its words file (cf5b938)
  • captions: break captions at sentence ends (3a7df4c)
  • chapters: merge consecutive sections with the same title into one chapter (0191f1b)
  • narrate: keep a renumbered section’s take by copying it to the new name (41ced3f)
  • template: port the approved demo film’s lesson into the scaffold (0f5332a)
  • template: port the v16 demo film’s edit into the scaffold (a530783)
featurefix
2026-09-14
Features
  • a demo deck built to a fifteen-person review, with a WebGL loss surface (148e59f)
  • captions, chapters, measured cue offsets, and a loudness pass that hits its target (27a8c1d)
  • close on “Update your video the way you update a doc.” (339dfe9)
  • closing scene, a cut check in verify, and a cover that survives a late capture (b1e1cdd)
  • demo deck after the round-two design and content review (1c5e44c)
  • demo v10, the storytelling panel’s rewrite of all five scenes (8754f83)
  • demo v11, a lay lesson on how AI learns, with a slot for B-roll (dd9147e)
  • demo: a ball walks the too-long and too-short paths as their markers appear (e25bade)
  • lesson-shaped scaffold, vendored KaTeX, pause directions, and page warnings (5ee46a8)
  • machine-readable output and one exit policy for the read-only commands (393cbf8)
  • pass the slide and cue context to handlers, freeze at one cue, and warn on unreachable reveals (675894d)
  • play a clip between page sections, with the narration paused around it (e884b29)
  • record: log when each cue was due, ran, and drew in the sidecar (a9a25b3)
  • record: pass the previous section’s words as prevwords, so scene 2 carries the Open’s real count times (04cb547)
  • refine the graphics and adopt the four-tick mark (142f511)
  • show the function before naming it in the demo, and close on decktalk.app (f9f251f)
  • site: host the demo video with the homepage (fecdfa2)
  • social card, README rebuilt around the lesson scaffold, and limiter headroom (2a4a93b)
  • teach the learning rate honestly in the demo’s gradient descent scene (0b8a958)
  • template: open the lesson on its title and bring in the rules card on “rules” (e596540)
  • template: scaffold the v12 demo film (ce17e25)
  • verify every cue by default, catch unknown cue ids, and keep clips at the edges (bd6c236)
Bug Fixes
  • accept -v and -q after the command, export result types, and report unexpected errors cleanly (ffd86ad)
  • captions keep the script’s punctuation and the onset scan sees low-contrast reveals (24357b7)
  • count only the part of a frame stall that falls after narration starts (1be18ee)
  • cover the page until the clock starts so a cut cannot miss the marker (f33a2d9)
  • define gradient descent before the surface appears, and hand off once at the edit (1b25627)
  • exact frame seeks on every ffmpeg build, and sidecars that explain synced reveals (2499312)
  • fail check on a page error, warn on bad TeX and dead cues, ease the ball steps out, and keep doctor from downloading (171f4bf)
  • narrate: pad cached takes to min_tail_seconds (df93b08)
  • print a skipped verify row’s reason once (2cf727d)
  • quote scene 3’s real length in the edit scene and give the close a beat (7f368cc)
  • read and write every text file as UTF-8, so init works on Windows (645aebc)
  • record: keep frames flowing after the cover so still pages record reveals on time (0abcf45)
  • report unknown cue ids from beats instead of stopping before the table (63208b9)
  • runtime: draw the preview index in the page’s own colors (5eec565)
  • say the thesis once in the demo deck (a677391)
  • start the clock on the next frame, detect and retry stalled recordings, and make frame comparisons build-proof (91cd81c)
  • timeline positions from decoded audio, word-synced reveals, a click test for sync, and a scaffold that teaches gradient descent (9b38bc2)
  • trim the scanned span per stream so the looped reference frame is not seeked past its end (028c845)
  • verify: compare luma only, so a static colored frame reads zero (d74bdc6)
  • verify: confirm each onset on 8 by 8 blocks, so encoder ringing never reads as an early reveal (8e9887a)
  • warm every scene 3 mesh so no cue freezes the page on its first draw (938f9a3)
  • warm the scene 3 figure at its real drawing state before narration starts (90807c4)
  • warn on unknown decktalk.toml keys, let doctor pass without KaTeX, and add optional clip sections (dcc4dbf)
  • warn when a step mounts equations without KaTeX in cue mode (2005a4a)
release
2026-09-12
First release. DeckTalk turns a markdown script, plain HTML slides, and an ElevenLabs voice into one mp4 in which every reveal lands on the word that introduces it. It records the slides in headless Chromium, cuts each section to the narration frame-exactly, mixes an optional soundscape, normalizes loudness, and verifies the result. Chromium and ffmpeg arrive through Python packages, and --silent renders a full draft without an API key.