Skip to content

release: v0.21.0 — nine opportunity-mined items (the #50 repair path, portability, discovery) - #98

Merged
renezander030 merged 11 commits into
masterfrom
release/v0.21.0
Aug 28, 2026
Merged

release: v0.21.0 — nine opportunity-mined items (the #50 repair path, portability, discovery)#98
renezander030 merged 11 commits into
masterfrom
release/v0.21.0

Conversation

@renezander030

@renezander030 renezander030 commented Aug 28, 2026

Copy link
Copy Markdown
Owner

v0.21.0 — nine items mined from what users are actually hitting, across this repo's issues, its forks, and the wider CapCut/JianYing tooling ecosystem.

New

  • sync-timelines --nested — opt-in repair for builds that keep the live timeline under Timelines/<id>/ (the #50 case, confirmed on CapCut Mac 9.2.8): copies the root timeline into the nested documents, each keeping its own GUID. What commands read is unchanged; nothing happens without the flag.
  • lint --pip — validates the PIP + local-mask workflow (#78): overlay / keyframe / mask-attachment counts, missing media by path, CI-friendly exit codes.
  • catalogue <query> — find a resource id by name across every bundled and harvested table; paste an id to get its name back.
  • import-srt / import-ass --clone-style — imported captions keep the draft's existing style, no segment id lookup needed.
  • relink --stage — relinked media is copied into the draft folder, so the repaired draft survives moving machines.
  • fixture --check — verifies a diagnostic bundle leaks no home path, email, or device id before you share it; capcut fixture <bundle-dir> --check re-checks an existing bundle.
  • lint media-unregistered — info-only note for drafts whose draft_meta_info.json registers no media (reported as "file inaccessible" on CapCut 9.1).
  • Write refusals name their gaterefused [editor-open] / [version-boundary] / [draft-changed-on-disk], so an error line is unambiguous about why the write stopped.
  • Chinese docs — README parity plus version-support and encryption translations.

Fixed

  • The pre-commit test gate reported the wrong exit status and could let a red suite commit.
  • fixture --check works for projects under a home directory (scans the real output path; the redactor's USER placeholder is not a finding).

No command was removed and no existing flag changed meaning. Full details in the changelog.

- relink --stage copies each relinked video/audio into assets/<kind>/ and
  points the material at the copy, so the repaired draft is portable
  (pyJianYingDraft#177)
- fixture --check scans the finished bundle (SANITIZE_REPORT.json and README
  included) for residual home paths, emails, device ids and the account name,
  with file:line findings and a non-zero exit; a bundle dir as the argument
  re-checks without rebuilding (#50, #59)
- every write refusal now names its gate - refused [editor-open] /
  [version-boundary] / [draft-changed-on-disk] / [mirror-newer] - so the next
  pasted stderr line is unambiguous about which gate fired (#50 side finding)
…ncryption translations, v0.21.0 highlights
Two composed bugs, found by smoking a bundle built under /home instead of
/tmp: the verify pass scanned report.out_dir, which is itself redacted
(/home/USER/...) and so not a filesystem path; and the home-path scan
flagged the redactor's own USER placeholder, which every correctly
redacted home-dir bundle (and every Windows/macOS temp dir) contains.
The check now scans the real --out path and captures the account segment
so exactly the USER placeholder passes.
@renezander030
renezander030 merged commit ace5b80 into master Aug 28, 2026
8 checks passed
@renezander030
renezander030 deleted the release/v0.21.0 branch August 28, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant