feat: prototype editable cursor choreography for AI Edition - #116
feat: prototype editable cursor choreography for AI Edition#116YoneRai12 wants to merge 1 commit into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
b43adda to
92fbe07
Compare
|
The base branch Suggestion: close it and reopen the cursor-choreography idea as a focused draft against |
|
Same as #113 — ignore my close suggestion, keeping this open. The AI Edition work landed on |
|
I had this backwards — apologies, twice over on the same topic. I told you this one was superseded and pointed the porting effort at #113. It's the other way round: this is the portable one. Your choreography here is wired into What's not portable here is the branch history, not the work: the base is 428 commits behind, and rebasing conflicts on 56 files at the first commit. So the same route as the Fedora PR — leave the history alone, take the content. It's five files:
The compositor side is already done and waiting on |
Lifted verbatim from getopenscreen#116, which cannot be rebased: its base is 428 commits behind and the first commit alone conflicts on 56 files. The module itself needs none of that history -- it lands on main untouched, with its 17 tests passing and no new type errors. This is the pure model: presets, easing, speed, anchor kinds, rest and click detection, and the sampling that turns a region into a position. No rendering, no editor, no dependency on anything the 1.8.0 merge removed. Taken from getopenscreen#116 rather than getopenscreen#113. The two carry different lineages of this module, not an old and a new one: getopenscreen#116's knows about source time and crop projection, which is what its editor and preview call into. getopenscreen#113's is the shape the deleted web editor wanted. Not wired to anything yet. The timeline lane and inspector controls need an `AxcutCursorMotionRegion` on the document schema first, and getopenscreen#116's preview layer is built on Pixi, which main dropped when the preview moved to the native compositor -- that part needs rebuilding on the native overlay rather than porting. The compositor already samples these presets for preview and export (see `feat/cursor-motion-contract`), so the rendering half is done. Co-authored-by: Etienne Lescot <etiennelescot@gmail.com> Refs getopenscreen#116, getopenscreen#113
|
Your motion model is now on
Two corrections to what I told you earlier, both from actually compiling things rather than eyeballing them: I said to prefer #113's version of this module. Wrong — they're different lineages, not old and new. Yours knows about source time and crop projection, which is exactly what your editor and preview call into; #113's is shaped for the web editor that got deleted. Yours is the one that survives.
Where that leaves the feature:
So the two ends exist and the editor is the gap. Yours to take whenever you want it — or to leave, and it's still in the history either way. |
707fccd to
00d7018
Compare
What
This Draft explores editable cursor choreography as an AI Edition idea/prototype.
recorded,1x) and create an editable range from the playhead to the next click, split at detected rests and clicks.recorded,straight,arc,wave,loop, andovershootpresets, with 1x-4x speed, easing, and cycle controls.Why
The AI Edition transition retained some zoom primitives but removed the previous automatic placement flow and the global cursor-follow mode from the primary V4 workflow. It also had no first-class way to author cursor movement without changing the underlying recording.
This prototype tests whether cursor movement can become a non-destructive, per-clip timeline effect while keeping untouched footage exactly as recorded.
Prototype UX
Architecture
cursorMotionRegionsis backward-compatible with a default empty array. Old assets default toautoZoomState: processed; newly imported assets are markedpendingso automatic zoom runs once without modifying old documents on load.clipIdandassetId. It stores both virtual and source boundaries, and regions that cross or disagree with their render segment are rejected.FrameRenderer; source changes clear the previous asset's telemetry and focus state.Validation
npx tsc --noEmit- passednpm run test:browser- 2 files, 6 tests passednpm run i18n:check- passed; all 12 translations match English across 7 namespacesnpm run test- 98/99 files and 1,010/1,012 tests passed. The two failures are existing Windows timeouts inelectron/media/ffmpegEncodeSession.test.ts(cancel()/post-cancel writes); the implementation and test files are unchanged from base commit4c2f842and also fail in isolation.Known limitations and open questions
Type of change
Release impact
Desktop impact
Screenshots / video
No attachment yet. The Windows Electron smoke confirmed the toolbar and timeline behavior; a polished demo should follow after the native cursor sampler is available in the test checkout.