From 2dc86e53212ab322c41a212a1e16564c2619136b Mon Sep 17 00:00:00 2001 From: Rene Zander Date: Fri, 25 Sep 2026 06:24:46 +0000 Subject: [PATCH] release: prepare v0.26.0 workflow upgrades --- CHANGELOG.md | 12 + README.md | 2 + README.zh-CN.md | 2 + docs/command-reference.json | 387 +++++++++++++++++++++++++++- docs/command-reference.md | 7 +- docs/command-reference.zh-CN.md | 13 +- package-lock.json | 4 +- package.json | 2 +- python/capcut/__init__.py | 2 +- python/pyproject.toml | 2 +- src/align.ts | 75 +++++- src/caption.ts | 107 +++++++- src/command-specs.ts | 77 +++++- src/factory.ts | 41 +++ src/index.ts | 184 ++++++++++++- src/interchange.ts | 179 +++++++++++-- src/lint.ts | 62 +++++ src/render.ts | 63 ++++- test/caption-script.test.mjs | 52 +++- test/caption-stream-reveal.test.mjs | 130 ++++++++++ test/caption.test.mjs | 7 + test/edit.test.mjs | 44 ++++ test/import-timeline.test.mjs | 59 ++++- test/lint-frame-grid.test.mjs | 77 ++++++ test/make-preset.test.mjs | 42 +++ test/remove.test.mjs | 28 ++ test/render.test.mjs | 45 ++++ 27 files changed, 1614 insertions(+), 91 deletions(-) create mode 100644 test/caption-stream-reveal.test.mjs create mode 100644 test/lint-frame-grid.test.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index b959d16..057ff57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,20 @@ All notable changes to capcut-cli are documented here. The format follows [Keep ## [Unreleased] +## [0.26.0] — 2026-09-25 + ### Added +- `lint --frame-grid` validates every segment start and end against the draft's fps. `lint --frame-grid --fix` snaps the two boundaries and derives the duration from them, avoiding the one-microsecond overlaps that independent start/duration rounding can create; an unchanged 1x source range follows the repaired duration. +- `caption --script` now aligns Chinese and Japanese at character granularity, including when Whisper returns several characters as one timed token. `--min-script-match <0..1>` turns the alignment report into a write gate: a mismatched script is refused before the draft changes. +- `caption --audio-stream ` selects a zero-based audio stream from a multi-stream input. FFmpeg extracts that stream to a temporary mono 16 kHz WAV before Whisper runs; `--ffmpeg-cmd` selects the binary and the result reports `audio_stream` while keeping `source_audio` pointed at the original container. +- Boundary-safe ripple editing: `remove --ripple` closes the removed span across every track and refuses before writing when another segment crosses it; `shift-all --from