From 835f226147dc5904ce435e9745493eedb658fa11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Zander?= <96420681+renezander030@users.noreply.github.com> Date: Fri, 6 Nov 2026 11:41:55 +0000 Subject: [PATCH 1/3] test(fixture): accept Windows path separators in the anonymize report check --- test/fixture-anonymize.test.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fixture-anonymize.test.mjs b/test/fixture-anonymize.test.mjs index 375dfa0..e380d86 100644 --- a/test/fixture-anonymize.test.mjs +++ b/test/fixture-anonymize.test.mjs @@ -184,7 +184,7 @@ describe("fixture --anonymize", () => { assert.equal(report.anonymized, true); assert.equal(report.anonymization.media_files, 2); assert.equal(report.anonymization.folders, 2); - assert.match(report.source_dir, /\/project$/); + assert.match(report.source_dir, /[\\/]project$/); assert.match(readFileSync(join(p.out, "README.md"), "utf-8"), /--anonymize/); for (const { rel, text } of bundledFiles(p.out)) { From 54a54cf2b684775c651fd42bac6a7ac14432b88e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Zander?= <96420681+renezander030@users.noreply.github.com> Date: Fri, 6 Nov 2026 11:41:55 +0000 Subject: [PATCH 2/3] docs: complete the v0.33.0 notes in the README and the Chinese command reference --- CHANGELOG.md | 7 +++++++ README.md | 2 +- docs/command-reference.json | 2 +- docs/command-reference.zh-CN.md | 4 ++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b29fb4..756d60f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to capcut-cli are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- The `fixture --anonymize` test accepts either path separator in the report's `source_dir`, so the Windows platform smoke passes; the anonymized path itself was already correct on Windows. +- The Chinese command reference lists `diff --since-write` and `fixture --anonymize` / `--check`, the README keeps the v0.32.0 note beside the v0.33.0 one, and `docs/command-reference.json` reports version 0.33.0 (it was regenerated before the version bump). + ## [0.33.0] — 2026-11-06 ### Added diff --git a/README.md b/README.md index 872c277..334c2c2 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ The host reads a draft and passes its JSON as tool input. The component itself h > **New in v0.33.0:** `caption` reports speech its cues leave uncaptioned and reuses a cached transcription when only the styling changes; `loudness --tolerance` and `--max-true-peak` gate a delivery with an exit code; `lint` gains opt-in pacing and silent-stretch checks; `diff --since-write` shows what CapCut changed after the CLI's last write; `fixture --anonymize` makes a shareable bundle; and `render --burn-captions` draws captions in the draft's own font. Full details in the [changelog](./CHANGELOG.md). -> **New in v0.31.0:** experimental, unofficial `caption --cloud` that transcribes without a local Whisper install by uploading the audio to ByteDance's CapCut servers ([#157](https://github.com/renezander030/capcut-cli/pull/157)), uploads nothing in a dry run, retries flaky requests and waits as long as the audio needs; loudness to a delivery target (`loudness --target -14`, applied as segment volume and undoable); faster compiles that reuse media hashes across repeated cuts; and three `lint` checks for clips that play silent after a copy, keyframes on trimmed or re-timed clips, and `UNIFORM_SCALE` zooms on JianYing 11.6+. Full details in the [changelog](./CHANGELOG.md). +> **New in v0.32.0:** time arguments reject malformed or unsafe values before writing; translation responses must contain exactly one string per input; and subtitle imports reject malformed UTF-8 instead of silently corrupting caption text. Full details in the [changelog](./CHANGELOG.md). diff --git a/docs/command-reference.json b/docs/command-reference.json index 732877c..6c366ae 100644 --- a/docs/command-reference.json +++ b/docs/command-reference.json @@ -1,6 +1,6 @@ { "name": "capcut-cli", - "version": "0.32.0", + "version": "0.33.0", "schema_version": 2, "description": "Edit CapCut/JianYing draft_content.json directly. JSON in, JSON out.", "global_flags": [ diff --git a/docs/command-reference.zh-CN.md b/docs/command-reference.zh-CN.md index 7dbcb0c..6f0c3d7 100644 --- a/docs/command-reference.zh-CN.md +++ b/docs/command-reference.zh-CN.md @@ -71,7 +71,7 @@ | `replace-media` | `capcut replace-media [--retime]` | 是 | 替换片段的源文件(占位素材 → 成片素材),保留其时间、特效与关键帧。 | | `timeline` | `capcut timeline [--cols ]` | 否 | 显示轨道/片段布局(JSON;-H 显示 ASCII 条形图)。 | | `projects` | `capcut projects [query] [--drafts ] [--names]` | 否 | 列出磁盘上的 CapCut/剪映草稿文件夹。 | -| `diff` | `capcut diff ` | 否 | 比较两个草稿(片段/素材/轨道的增、删、改)。 | +| `diff` | `capcut diff ( \| --since-write)` | 否 | 比较两个草稿(片段/素材/轨道的增、删、改);加 --since-write 时,比较草稿与 capcut-cli 上次写入的内容。 | | `concat` | `capcut concat [--out ]` | 是 | 把一个草稿追加到另一个的时间线末尾(ID 安全),写入 --out 或原地写入。 | | `config` | `capcut config` | 否 | 显示解析后的配置(.capcutrc + 生效的默认值)。 | | `describe` | `capcut describe [--compact] [--command ]` | 否 | 以 JSON 输出命令契约;可按命令名筛选,或输出精简的命令发现索引。 | @@ -80,7 +80,7 @@ | `harvest-enums` | `capcut harvest-enums [ \| --sync \| --add ] [--apply] [--catalogue ]` | 否 | 把商店资源 ID 学习进用户级素材目录:来源可以是单个草稿、整个草稿库(--sync),或手动添加(--add)。 | | `doctor` | `capcut doctor [--drafts ]` | 否 | 环境预检(Node、whisper、API key、项目目录),并统计草稿目录中可读 / 无标记 / 已加密 / 无法读取的项目。 | | `diagnose` | `capcut diagnose [--bundle ]` | 否 | 检查草稿的规范文件、文件间分歧与编辑器写入安全性。 | -| `fixture` | `capcut fixture --out ` | 否 | 构建可分享、已脱敏的兼容性包(仅时间线 JSON),用于版本支持 issue,内含蒙版关键帧证据报告(#44)。 | +| `fixture` | `capcut fixture --out [--anonymize] [--check]` | 否 | 构建可分享、已脱敏的兼容性包(仅时间线 JSON),用于版本支持 issue,内含蒙版关键帧证据报告(#44)。 | | `sync-timelines` | `capcut sync-timelines [--apply]` | 是 | 从只读的 draft_content.json 出发,协调已漂移的时间线镜像文件(template-2.tmp、draft_info.json)(默认输出带 mtime 的计划;--apply 只重写发生漂移的镜像)。 | | `restore` | `capcut restore [--step \| --list]` | 是 | 从 .bak / 快照历史撤销写入(--step N、--list)。 | | `serve` | `capcut serve [--queue ] [options]` | 否 | 从 stdin/--queue 运行无状态的 JSONL 任务队列。 | From 3bcaad7a0b0e6e368954a942555199fc66bb9a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Zander?= <96420681+renezander030@users.noreply.github.com> Date: Fri, 6 Nov 2026 11:41:55 +0000 Subject: [PATCH 3/3] Release v0.33.1: Windows-safe anonymize test and complete v0.33.0 docs --- CHANGELOG.md | 4 ++-- docs/command-reference.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 756d60f..fbd1f71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,12 @@ All notable changes to capcut-cli are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.33.1] — 2026-11-06 ### Fixed - The `fixture --anonymize` test accepts either path separator in the report's `source_dir`, so the Windows platform smoke passes; the anonymized path itself was already correct on Windows. -- The Chinese command reference lists `diff --since-write` and `fixture --anonymize` / `--check`, the README keeps the v0.32.0 note beside the v0.33.0 one, and `docs/command-reference.json` reports version 0.33.0 (it was regenerated before the version bump). +- The Chinese command reference lists `diff --since-write` and `fixture --anonymize` / `--check`, the README keeps the v0.32.0 note beside the v0.33.0 one, and `docs/command-reference.json` reports the package version (0.33.0 shipped it regenerated before its version bump). ## [0.33.0] — 2026-11-06 diff --git a/docs/command-reference.json b/docs/command-reference.json index 6c366ae..7212f4f 100644 --- a/docs/command-reference.json +++ b/docs/command-reference.json @@ -1,6 +1,6 @@ { "name": "capcut-cli", - "version": "0.33.0", + "version": "0.33.1", "schema_version": 2, "description": "Edit CapCut/JianYing draft_content.json directly. JSON in, JSON out.", "global_flags": [ diff --git a/package-lock.json b/package-lock.json index ca4fdb6..df3f1d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "capcut-cli", - "version": "0.33.0", + "version": "0.33.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "capcut-cli", - "version": "0.33.0", + "version": "0.33.1", "license": "MIT", "bin": { "capcut": "dist/index.js", diff --git a/package.json b/package.json index a351131..52ceeb2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "capcut-cli", - "version": "0.33.0", + "version": "0.33.1", "description": "Independent, unofficial CLI to create and edit CapCut projects — build drafts from scratch, add video/audio/text, subtitles, timing, speed, volume, templates, cut long-form to shorts. No API needed. Not affiliated with ByteDance.", "type": "module", "bin": {