Skip to content

Commit 00a0539

Browse files
jbrechtclaude
andcommitted
chore(release): 0.12.0 — chapters that work on YouTube & Vimeo
Lockstep minor bump. Carries #52 (chapters now respect YouTube's 10s floor and Vimeo's 50-char title limit; new exports enforceMinChapterDuration and YOUTUBE_MIN_CHAPTER_MS; default title cap 60→50) and the flaky calibration-flash e2e fix (#54). Minor rather than patch: two additive public exports plus the title-cap behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 67afdca commit 00a0539

3 files changed

Lines changed: 3 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Everything below is opt-in. Notes for existing consumers:
1818
- `StepError` messages are richer (multi-line, with artifact paths). If you parsed them, prefer the new structured `error.artifacts` field.
1919
- The timing manifest gained optional fields (`lang`, `capture`). Old kept work dirs still post-process fine.
2020

21-
## Unreleased
21+
## 0.12.0 — chapters that work on YouTube & Vimeo
2222

2323
- **Chapters now activate on YouTube & Vimeo (#52).** The emitted chapter artifacts respect each platform's activation rules so they don't silently fail on upload. The YouTube `.chapters.txt` list folds any sub-10s chapter into its neighbor — YouTube ignores the *entire* description chapter list if a single chapter is under 10s. Chapter titles are now capped at **50 characters** (Vimeo's limit, the strictest common target) instead of 60 — a behavior change to the default title cap (`ChapterOptions.maxTitleChars` / `deriveChapterTitle`), so titles of 51–60 chars that previously survived are now truncated. The MP4 chapter track and the `.chapters.vtt` (Vimeo/web) keep the full per-step list. New exports: `enforceMinChapterDuration`, `YOUTUBE_MIN_CHAPTER_MS`. Docs gained a "Getting chapters onto YouTube and Vimeo" section. No breaking signature changes.
2424
- **Fix flaky calibration-flash e2e check.** The integration test asserted `videoClockOffsetMs > 0`, but a flash detected on the recording's very first frame yields a legitimate offset of `0` (recordVideo coalesces the identical pre-flash blank frames), so the test failed ~1 run in 3 even though detection succeeded. It now re-detects the flash on the raw recording and asserts it was *found* (non-null), and that the pipeline used that offset. Production behavior was already correct — test-only change.

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tutorial-forge-cli",
3-
"version": "0.11.2",
3+
"version": "0.12.0",
44
"description": "CLI for tutorial-forge: render scripted Playwright walkthroughs into narrated tutorial videos",
55
"type": "module",
66
"license": "PolyForm-Small-Business-1.0.0",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tutorial-forge",
3-
"version": "0.11.2",
3+
"version": "0.12.0",
44
"description": "Turn scripted Playwright walkthroughs into narrated tutorial videos (MP4). Tutorials are source code: re-render instead of re-recording when your UI changes.",
55
"type": "module",
66
"license": "PolyForm-Small-Business-1.0.0",

0 commit comments

Comments
 (0)