Repository navigation
Fixture: JianYing 9.0.0 on Windows (encrypted mirrors beside a plaintext primary) - #150
Merged
renezander030 merged 1 commit intoOct 14, 2026
Conversation
A real 剪映专业版 9.0.0 (Windows 10.0.19045) project, captured with `capcut fixture` after the app had opened a draft this CLI wrote, so the app encrypted `draft_content.json` / `template-2.tmp` / `draft_meta_info.json` in place and materialised `Timelines/` while leaving the primary `draft_info.json` plaintext. That state is worth committing because it is the one the docs cannot describe from memory: the project stays readable through its plaintext primary, the encrypted mirrors are skipped rather than fatal, and the version markers come off the primary. The test pins all three, plus the current write-guard verdict for the version so a future change to it is deliberate. Two things the capture also establishes, recorded in the fixture README and the new docs/version-support.md row rather than asserted here: - On this build an *app-authored* project is a plaintext `draft_content.json` with no `draft_info.json` or `template-2.tmp` at all, so the 6.0+ note that the primary has been `draft_info.json` since 6.0 does not hold here. - A segment the app itself carries can have a `target_timerange` with no `start` and no `speed`. The write guard is deliberately untouched by this commit: a committed fixture backs the storage shape, not a round-trip on every 9.0.0 build, and one machine's capture is not evidence enough to narrow the 6.0+ refusal.
Owner
|
Thanks for contributing the capture and regression tests! This is a useful addition, and I agree with keeping the write guard unchanged. Once CI has run and passed, this looks ready to merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a committed fixture, a regression test and a
docs/version-support.mdrowfor a capture the docs currently describe from memory only.
The capture
A real 剪映专业版 (JianYing) 9.0.0 on Windows 10.0.19045 project, taken with
capcut fixtureafter the app had opened a draft this CLI wrote:draft_info.jsondraft_content.jsontemplate-2.tmpdraft_meta_info.jsonTimelines/project.json,Timelines/469574b7-…/draft_content.jsonRedacted with
capcut fixture: no media, home paths / emails / deviceidentifiers stripped. Content is two text segments ("smoke-test",
"smoke-cta-default") from the tool's own smoke test.
Why it is worth committing
written, closed, opened in the app, and the added text segment was present and
editable. The app then encrypted the legacy mirrors and left the primary
plaintext — so the CLI keeps reading the project through its canonical file and
never writes into the encrypted mirrors.
build an app-authored project is a plaintext
draft_content.jsonwith nodraft_info.jsonortemplate-2.tmpat all. That folder is the owner's and isnot committed, but the consequence is recorded in the docs row.
target_timerange.startis not guaranteed. Thesmoke-testsegmentcarries
{"duration":3000000}with nostartand nospeed; the app rendersit normally and
capcut segments -HprintedNaN:00NaN/undefinedxfor it.What the test pins
diagnoseselectsdraft_info.jsonas canonical and reports9.0.0.readable primary still carries the timeline — a capture with encrypted siblings
must not break canonical selection.
versionreads JianYing /lv/9.0.0off the primary.known-broken/refuse/beyond_known_range) is unchanged, so any future narrowing of the 6.0+ band isa deliberate edit with this test in front of it.
What this does NOT claim
The write guard is untouched on purpose. A committed fixture backs the storage
shape; it is not a round-trip claim for every JianYing 9.0.0 build, and this is
one machine. Narrowing the
>= 6.0refusal (or relaxing it for plaintext-primaryprojects, the way the 11.4.0 macOS row is phrased) should be a maintainer
decision on top of this evidence — see #148.
Testing
test/jianying-9-0-0-windows.test.mjs: 4 tests, all passing.