summaryrefslogtreecommitdiff
path: root/apps/web/src/actions
Commit message (Collapse)AuthorAgeFilesLines
* feat: freeze-duration promptcashmere2026-07-273-0/+279
| | | | | | | Freeze frame now asks for the duration (decimal seconds, 0 < d <= 600) before capture, via a promise-based zustand store mounted as an editor-global dialog. Last-used duration persists and prefills. Cancel aborts before capture with no commands.
* fix: restore missing keybinding validation guardscashmere2026-07-273-0/+50
| | | | | | | | persistence.ts imported isActionWithOptionalArgs and isShortcutKey, neither of which existed at runtime — loading persisted custom keybindings would crash. Adds actions/guards.ts (excluding required-args actions per TActionArgsMap) and isShortcutKey in keybinding.ts; the nine previously dead persistence tests now pass.
* feat: single undo step for freeze framecashmere2026-07-261-21/+25
| | | | | | | | | The handler fired four separate commands (asset add, split, move, insert), producing four undo steps. It now builds one BatchCommand and executes it once. The new ShiftSplitRemainderCommand resolves the split's right-side elements lazily at execute() so it can be composed after the split in the batch, and rebuilds the inner move on redo since a re-executed split generates fresh element ids.
* feat: freeze frame at playheadcashmere2026-07-262-1/+95
| | | | | | | | | | | Enable the timeline toolbar freeze-frame button: capture the composited canvas as PNG, add it as an image media asset, split the video element at the playhead, shift the right part by the freeze duration, and insert a 3-second image element in the gap. Adds RendererManager.captureFrame(), reused by createSnapshot(). Also adds the Nix devshell (flake.nix/flake.lock: bun + nodejs) and AGENTS.md repository guidelines.
* refactor: split builtin and freeform masksMaze Winther2026-05-021-1/+1
| | | | Made-with: Cursor
* chore: switch from biome to eslint + prettier; fix ton of lint issuesMaze Winther2026-05-0218-341/+597
|
* fix: model editor time as wasm MediaTime ticks end-to-endMaze Winther2026-04-261-24/+68
|
* refactor: restructure files to their domains, new preview overlay system, ↵Maze Winther2026-04-2017-0/+1724
and dep graph