| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | docs: fix readme | Maze Winther | 2026-05-02 | 1 | -22/+49 |
| | | |||||
| * | Merge branch 'domain-import' | Maze Winther | 2026-05-02 | 2 | -27/+57 |
| |\ | |||||
| | * | docs: move NOTES.md file | Maze Winther | 2026-05-02 | 3 | -176/+206 |
| | | | |||||
| * | | chore: ignore migrations file | Maze Winther | 2026-05-02 | 2 | -37/+3 |
| | | | |||||
| * | | chore: remove file | Maze Winther | 2026-05-02 | 1 | -977/+0 |
| | | | |||||
| * | | refactor: collapse mask definition registry to a single keyed registry | Maze Winther | 2026-05-02 | 3 | -47/+30 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The freeform mask was assembled on every getMaskDefinition("freeform") call, re-spreading params and injecting a wrong SquareIcon placeholder, with a type cast to suppress the structural mismatch. Root cause: MasksRegistry was keyed on BuiltinMaskType, so freeform had no entry. - Re-key MasksRegistry from BuiltinMaskType to MaskType - Register freeform alongside builtins in registerDefaultMasks, with PenToolAddIcon as its menu icon - getMaskDefinition and getMaskDefinitionsForMenu become plain registry lookups with no branching, no manual spreading, no cast - Rename RegisteredBuiltinMaskDefinition to RegisteredMaskDefinition and tighten computeParamUpdate return type to Partial<BaseMaskParams> Co-authored-by: Cursor <cursoragent@cursor.com> | ||||
| * | | refactor: remove dead tangent handle variant | Maze Winther | 2026-05-02 | 3 | -49/+22 |
| | | | | | | | | | | | | | | | | | | | | | | | The { kind: "tangent" } MaskHandleId variant was never constructed — neither getFreeformDisplayHandles nor any other code ever produced a tangent handle object. The in/out control-arm branches in computeFreeformParamUpdate, the tangent case in maskHandleIdKey, and the CUSTOM_MASK_TANGENT_SIZE rendering path in mask-handles.tsx were all unreachable. Removed all four dead paths and removed "tangent" from MaskHandleKind. Co-authored-by: Cursor <cursoragent@cursor.com> | ||||
| * | | fix: address review findings in masks substrate | Maze Winther | 2026-05-02 | 5 | -12/+116 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove dead ternary in getPreferredEdges (always returned undefined; the all-false object was never reached by Object.values().some(Boolean)) - Document why drawWithFeather descriptors zero the feather field in the compositor (analytical renderer handles softness itself; zeroing prevents a second JFA feather pass) - Remove legacyType from V30→V31 migration (not consumed anywhere; a down-migration can map type:"freeform" back to "custom" directly) - Add V30→V31 test coverage: skip-guard branches, freeform passthrough, elements without a masks array - Add snap tests for vertical-edge (bottom) and uniform-scale handle paths Co-authored-by: Cursor <cursoragent@cursor.com> | ||||
| * | | docs: capture mask rust migration notes | Maze Winther | 2026-05-02 | 1 | -0/+36 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | refactor: split builtin and freeform masks | Maze Winther | 2026-05-02 | 32 | -273/+508 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | refactor: type mask handle identifiers | Maze Winther | 2026-05-02 | 11 | -209/+252 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | refactor: make mask renderer dispatch explicit | Maze Winther | 2026-05-02 | 14 | -559/+660 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | refactor: split mask snap dispatch | Maze Winther | 2026-05-02 | 4 | -45/+85 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | refactor: animate params over time | Maze Winther | 2026-05-02 | 32 | -1134/+1419 |
| | | | |||||
| * | | chore: cleanup | Maze Winther | 2026-05-02 | 10 | -272/+41 |
| | | | |||||
| * | | refactor: unify element params | Maze Winther | 2026-05-02 | 53 | -1360/+2019 |
| | | | |||||
| * | | chore: switch from biome to eslint + prettier; fix ton of lint issues | Maze Winther | 2026-05-02 | 159 | -5221/+5596 |
| | | | |||||
| * | | chore: untrack cargo-tools files | Maze Winther | 2026-05-02 | 1 | -1/+1 |
| | | | |||||
| * | | chore: remove accidental file | Maze Winther | 2026-04-26 | 2 | -10/+1 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | fix: restore README header, badges, links, and star chart | Maze Winther | 2026-04-26 | 1 | -24/+47 |
| | | | | | | | | | Made-with: Cursor | ||||
| * | | refactor: split animation helpers by domain | Maze Winther | 2026-04-26 | 67 | -1511/+2718 |
| |\| | |||||
| | * | refactor: split animation helpers by domain | Maze Winther | 2026-04-26 | 43 | -1322/+1628 |
| | | | |||||
| | * | refactor: centralize editor interaction state | Maze Winther | 2026-04-25 | 38 | -4754/+5673 |
| | | | | | | | | | | | | | | | | | Move timeline and preview gestures into dedicated controllers so hooks stay thin around editor state and DOM events. This also routes drag and playback synchronization through manager APIs and reuses persistent wasm surfaces so scrubbing, seeking, and preview rendering stay in sync. Made-with: Cursor | ||||
| | * | fix: surface unsupported video codec on import, fix Input leaks | Maze Winther | 2026-04-25 | 4 | -144/+165 |
| | | | |||||
| | * | perf: improve rendering performance by ~20x | Maze Winther | 2026-04-22 | 11 | -322/+745 |
| | | | |||||
| * | | refactor: thinner hooks | Maze Winther | 2026-04-26 | 48 | -4244/+5335 |
| | | | |||||
| * | | fix: linter | Maze Winther | 2026-04-26 | 2 | -16/+23 |
| | | | |||||
| * | | fix: follow-up to prev commit | Maze Winther | 2026-04-26 | 1 | -1/+2 |
| | | | |||||
| * | | fix: model editor time as wasm MediaTime ticks end-to-end | Maze Winther | 2026-04-26 | 79 | -511/+1589 |
| |/ | |||||
| * | chore: remove stale files | Maze Winther | 2026-04-22 | 4 | -699/+0 |
| | | |||||
| * | chore: bump opencut-wasm version | Maze Winther | 2026-04-22 | 3 | -3/+3 |
| | | |||||
| * | fix: wasm WebGL only until WebGPU is fixed | Maze Winther | 2026-04-22 | 1 | -9/+10 |
| | | |||||
| * | refactor: migration run() and pure v1-to-v2 transform | Maze Winther | 2026-04-22 | 36 | -828/+990 |
| | | |||||
| * | chore: formatting | Maze Winther | 2026-04-22 | 7 | -37/+54 |
| | | |||||
| * | fix: project loading thing | Maze Winther | 2026-04-21 | 2 | -17/+43 |
| | | |||||
| * | chore: delete ffmpeg public assets | Maze Winther | 2026-04-21 | 3 | -26/+1 |
| | | |||||
| * | docs: ts conventions to agents.md | Maze Winther | 2026-04-21 | 1 | -0/+14 |
| | | |||||
| * | refactor: restructure files to their domains, new preview overlay system, ↵ | Maze Winther | 2026-04-20 | 491 | -2372/+3565 |
| | | | | | and dep graph | ||||
| * | fix: WebGL frame rendering and opencut-wasm 0.2.8 | Maze Winther | 2026-04-19 | 14 | -118/+329 |
| | | |||||
| * | docs: add prerequisites for rust | Maze Winther | 2026-04-19 | 1 | -0/+13 |
| | | |||||
| * | fix: migrate commands to CommandResult selection contract | Maze Winther | 2026-04-18 | 6 | -19/+51 |
| | | |||||
| * | delete legacy folder | Maze Winther | 2026-04-18 | 16 | -2816/+0 |
| | | |||||
| * | fix: default audio waveform color from timeline theme | Maze Winther | 2026-04-18 | 2 | -2/+5 |
| | | |||||
| * | chore: update opencut-wasm version to 0.2.6 in Cargo.lock | Maze Winther | 2026-04-18 | 1 | -1/+1 |
| | | |||||
| * | fix: align LayerUniformBuffer to 16 bytes for WebGL compat | Maze Winther | 2026-04-18 | 2 | -1/+3 |
| | | |||||
| * | feat: clip volume line and timeline waveform improvements | Maze Winther | 2026-04-18 | 19 | -717/+1635 |
| | | |||||
| * | feat: text / custom masks, fix preview pan, refactor selection | Maze Winther | 2026-04-15 | 53 | -3634/+8080 |
| | | |||||
| * | feat: history view in feedback popover | Maze Winther | 2026-04-15 | 1 | -30/+59 |
| | | |||||
| * | chore: formatting | Maze Winther | 2026-04-15 | 7 | -342/+357 |
| | | |||||
| * | fix: audio waveform height in timeline | Maze Winther | 2026-04-15 | 2 | -2/+2 |
| | | |||||
