Skip to content

refactor(studio): gate Acorn writer migration#2164

Merged
jrusso1020 merged 4 commits into
mainfrom
07-10_refactor_studio_gate_acorn_writer_migration
Jul 18, 2026
Merged

refactor(studio): gate Acorn writer migration#2164
jrusso1020 merged 4 commits into
mainfrom
07-10_refactor_studio_gate_acorn_writer_migration

Conversation

@jrusso1020

@jrusso1020 jrusso1020 commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

What

Put the Recast-to-Acorn writer migration behind an executable capability and parity gate.

Why

Acorn lacked motion-path operations and still depended on Recast-only hold synchronization after mutation.

How

Generate the operation matrix, implement missing Acorn paths and shared hold behavior, differentially test semantics/source placement, and keep the flag gated until graduation.

Test plan

  • Acorn capability report, motion-path, parser parity, and studio-server writer tests
  • Stack-wide lint, format, build, typecheck, and relevant integration gates

jrusso1020 commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch 2 times, most recently from 1bf2e0c to 864beed Compare July 14, 2026 03:20
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch 2 times, most recently from 68e485e to 676273e Compare July 14, 2026 17:03
@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch from 864beed to 4dd9950 Compare July 14, 2026 17:03
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch 2 times, most recently from b79a434 to 67ff080 Compare July 14, 2026 17:35
@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch 2 times, most recently from 406554a to fab40bd Compare July 14, 2026 17:57
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch 2 times, most recently from 1756777 to bfa3733 Compare July 14, 2026 18:06
@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch from fab40bd to a4a115e Compare July 14, 2026 18:06
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch from bfa3733 to a26085e Compare July 14, 2026 19:37
@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch from a4a115e to 8134c99 Compare July 14, 2026 19:37
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch from a26085e to f95673f Compare July 14, 2026 19:42
@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch from 8134c99 to f66d284 Compare July 14, 2026 19:42
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch from f95673f to abe7134 Compare July 14, 2026 19:47
@jrusso1020
jrusso1020 force-pushed the 07-10-refactor_producer_make_capture_plans_immutable branch from f66d284 to 7d48c5b Compare July 14, 2026 19:47
@jrusso1020
jrusso1020 force-pushed the 07-10_refactor_studio_gate_acorn_writer_migration branch 2 times, most recently from eb2ee81 to e23a2dd Compare July 14, 2026 23:29
@jrusso1020

jrusso1020 commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

Fixed the fresh-head CI compile failure on head 0038842: atomic split batches now resolve the selected GSAP writer once at the route boundary and pass it through each split mutation, matching regular mutation batches. Validated with files.test.ts (66/66), Studio Server typecheck, diff check, and commit hooks. Fresh exact-head CI is running.

@jrusso1020

Copy link
Copy Markdown
Collaborator Author

Fixed the Windows-only CI failure on head bb7820d: Windows Core compilation types process.env without the selector field, so both GSAP route boundaries now pass an explicit HYPERFRAMES_GSAP_WRITER value instead of the entire environment. Behavior is unchanged. Validated files.test.ts (66/66), Studio Server typecheck, Core build, diff check, and commit hooks. Fresh exact-head CI is running.

@miguel-heygen miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The regular mutation route now selects the writer explicitly and returns a clean 400 for an invalid flag, and the new Acorn motion-path differential coverage is strong. The capability matrix is also compile-time exhaustive.

Blocker

  • packages/studio-server/src/routes/files.ts:2045foldAtomicCutFile dispatches the split with the selected writer, but after a changed script it unconditionally calls loadGsapParser() and runs the Recast hold synchronizer. Therefore HYPERFRAMES_GSAP_WRITER=acorn atomic split batches still import and execute Recast, violating this migration gate's stated no-Recast runtime invariant and mixing writer semantics in one mutation. The current capability test only scans applyGsapMutations, so this sibling path is not covered. Please use the same writer-conditioned hold synchronization as the regular route and add an atomic Acorn regression proving the Recast import gate is untouched.

Verdict: REQUEST CHANGES
Reasoning: The primary Acorn route and parity suite look solid, but the atomic split path still crosses into Recast under the Acorn flag; the migration gate is incomplete until that path and its regression coverage are corrected.

— Magi

@jrusso1020

Copy link
Copy Markdown
Collaborator Author

Fixed the atomic Acorn split-path blocker on exact head 8dd7e3d. After a split mutation changes the script, hold synchronization now follows the selected writer: Acorn uses the Acorn synchronizer and never loads Recast; the default Recast path is unchanged. Extended the writer capability regression to cover foldAtomicCutFile and assert the same conditioned hold-sync boundary. Validation passed: files + capability suites 70/70, Studio Server typecheck, formatting, diff check, and commit hooks. The full stack was restacked and republished; fresh exact-head CI is running.

@miguel-heygen miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fresh exact-head delta review at 8dd7e3dfc.

  • packages/studio-server/src/routes/files.ts:2045 now keeps post-split hold synchronization writer-conditioned: Acorn stays on syncPositionHoldsBeforeKeyframes, while the unchanged default path lazily loads Recast.
  • packages/studio-server/src/routes/gsapMutationCapabilities.test.ts:47 now includes foldAtomicCutFile in the migration-boundary regression, pinning both the Acorn and Recast branches.

The prior atomic-path blocker is resolved. I rechecked the one-commit delta, all existing reviews/comments and threads, exact-head required CI, mergeability, and the surrounding writer plumbing; no remaining blocker found.

Verdict: APPROVE
Reasoning: The Acorn atomic split path is now Recast-free under the flag, the default Recast behavior is preserved, and regression coverage plus all required exact-head checks are green.

— Magi

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.

2 participants