voxflow 1.18.2 → 1.18.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voxflow",
3
- "version": "1.18.2",
3
+ "version": "1.18.3",
4
4
  "description": "AI audio content creation CLI — stories, podcasts, narration, dubbing, transcription, translation, and video translation with TTS",
5
5
  "bin": {
6
6
  "voxflow": "./dist/index.js"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "voxflow",
3
- "version": "1.18.2",
3
+ "version": "1.18.3",
4
4
  "description": "AI voice CLI bundled as 6 skills (hub, podcast, transcribe, video, slice, card). Synthesize speech in 200+ voices across 40+ languages, generate multi-speaker AI podcasts, transcribe audio/video with word-level timestamps, dub videos from SRT subtitles, run end-to-end video translation, turn long articles into vertical card video reels via Remotion, and turn text into polished shareable card images or narrated card videos. Backed by a hosted TTS/ASR/LLM/render service with per-user quota (free tier 10K/mo).",
5
5
  "author": {
6
6
  "name": "VoxFlow",
@@ -460,6 +460,28 @@ Use `references/design-languages.md` to define the card set's visual grammar ind
460
460
  - `--input <path>` / `-o, --output <path>` — operate on / write to a different mp4 (otherwise: replace in place).
461
461
  - **Quota**: 0 — pure FFmpeg pipeline.
462
462
 
463
+ **Card-design constraint when planning to burn subtitles** (applies during Workflow steps 4–6, *before* writing the HTML):
464
+
465
+ The default subtitle style sits at ASS `MarginV=14` with `BorderStyle=3` (opaque box) — roughly the bottom **12–18% of the canvas height** on a 1080×1920 card. Anything the card itself places in that band will be overlapped by the captions. Verified during 1.18 dogfooding: page-number footers, citation chrome, italic closing pull-quotes, and "endcap" lines at the bottom edge all got partially covered.
466
+
467
+ Rules of thumb:
468
+ - **Reserve the bottom 15% of every card as a captioning-safe zone**: no body copy, no citation footer, no closing pull-quote there. Move card-level chrome (page number, citation, kicker) to the *top* band, or shrink the live area so it ends at ~85% of canvas height.
469
+ - The editorial chrome (top kicker / series indicator) is always safe — captions live at the bottom only.
470
+ - **Visual anchors that span full height** (oversized type, edge-cropped illustrations, photo-led covers) are fine: subtitles sit on top of the artwork, which is the intended layering. Only legibility-critical text needs to clear the band.
471
+ - When a card legitimately needs a bottom-edge element (e.g. a stamp, big page number, full-bleed image), skip captions for that card by leaving its `narration` empty in `deck.json` — `card subtitle` will silently absorb the empty card into adjacent windows.
472
+ - If you forget and discover the collision in QA: run `card subtitle --dry-run` to inspect `subs.srt` first, then either redesign the offending card's bottom band or pass `--style 'MarginV=24,...'` to push captions higher (cards with a wider safe zone trade some readability — captions get smaller relative to the canvas).
473
+
474
+ **Card-design constraint when planning to burn subtitles** (applies during Workflow steps 4–6, *before* writing the HTML):
475
+
476
+ The default subtitle style sits at ASS `MarginV=14` with `BorderStyle=3` (opaque box) — roughly the bottom **12–18% of the canvas height** on a 1080×1920 card. Anything the card itself places in that band will be overlapped by the captions. Verified during 1.18 dogfooding: page-number footers, citation chrome, italic closing pull-quotes, and "endcap" lines at the bottom edge all got partially covered.
477
+
478
+ Rules of thumb:
479
+ - **Reserve the bottom 15% of every card as a captioning-safe zone**: no body copy, no citation footer, no closing pull-quote there. Move card-level chrome (page number, citation, kicker) to the *top* band, or shrink the live area so it ends at ~85% of canvas height.
480
+ - The editorial chrome (top kicker / series indicator) is always safe — captions live at the bottom only.
481
+ - **Visual anchors that span full height** (oversized type, edge-cropped illustrations, photo-led covers) are fine: subtitles sit on top of the artwork, which is the intended layering. Only legibility-critical text needs to clear the band.
482
+ - When a card legitimately needs a bottom-edge element (e.g. a stamp, big page number, full-bleed image), skip captions for that card by leaving its `narration` empty in `deck.json` — `card subtitle` will silently absorb the empty card into adjacent windows.
483
+ - If you forget and discover the collision in QA: run `card subtitle --dry-run` to inspect `subs.srt` first, then either redesign the offending card's bottom band or pass `--style 'MarginV=24,...'` to push captions higher (cards with a wider safe zone trade some readability — captions get smaller relative to the canvas).
484
+
463
485
  Note: `card subtitle` also has a `silencedetect` fallback for old mp4s that pre-date the `timeline.json` emission (introduced in CLI 1.18). Prefer the timeline path; it is exact rather than heuristic.
464
486
 
465
487
  ## Asset and Source Discipline