Commit Graph

995 Commits

Author SHA1 Message Date
Maze Winther f47e85c3bb fix: respect scale lock when editing keyframed scale 2026-04-07 01:19:46 +02:00
Maze Winther e43b859439 fix: place new overlay tracks at the top of the timeline 2026-04-07 01:18:57 +02:00
Maze Winther e4b67094e7 refactor: split effects and masks into dedicated rust crates, introduce MediaTime and FrameRate 2026-04-07 01:09:13 +02:00
Maze Winther 79df736431 fix: clean up graph editor 2026-04-06 13:15:50 +02:00
Maze Winther c411edb7c1 fix: clean up 2026-04-06 12:59:07 +02:00
Maze Winther 2776adaae1 fix: whitespace 2026-04-06 12:42:46 +02:00
Maze Winther 964ac82d5e refactor: split presets into data definitions and storage store 2026-04-06 12:40:47 +02:00
Maze Winther 05243616ea refactor: use useShiftKey hook in bezier graph 2026-04-06 01:51:09 +02:00
Maze Winther ccd552a1c0 chore: addition to last merge 2026-04-06 01:24:09 +02:00
Maze Winther fcc09e80e2 Merge branch 'temp' 2026-04-06 01:23:47 +02:00
Maze dedb13546a feat: graphs popover 2026-04-06 01:13:14 +02:00
Maze Winther c56d6f8188 fix: preserve negative start times during timeline drag 2026-04-06 00:57:54 +02:00
Maze Winther 44d8c4c876 refactor: unify element updates into pipeline and centralize ripple 2026-04-06 00:02:23 +02:00
Maze 0997466331 fix: subscribe to playback time so keyframe button updates on frame change
Made-with: Cursor
2026-04-05 13:37:29 +02:00
Maze 1bd9fac203 refactor: rewrite animation system to use bindings and scalar channels 2026-04-05 13:15:58 +02:00
Maze 69da5bee0c style: tabs 2026-04-04 11:59:04 +02:00
Maze cb99925d75 refactor: swap out manual tabs withthe shared tabs component in stickers 2026-04-04 11:58:55 +02:00
Maze 78c6c497f1 chore: remove transcription envs 2026-04-04 08:53:10 +02:00
Maze Winther 1a8a1e889a refactor: update command execute methods to return CommandResult | undefined 2026-04-03 03:13:49 +02:00
Maze Winther bd9ec023ee refactor: split constants by domain and isolate timeline panel from core 2026-04-01 19:27:49 +02:00
Maze Winther f4b9f40ab1 fix: update tooltip text for graph editor button 2026-04-01 18:17:23 +02:00
Maze Winther 93cc5d50f3 fix: don't crash when GPU isn't available 2026-04-01 18:13:27 +02:00
Maze Winther 8a1d37cf3e fix: align background blur with effect blur intensity scale 2026-04-01 15:15:41 +02:00
Maze Winther e579ae1202 feat: migrate GPU renderer from WebGL to wgpu/WASM 2026-04-01 13:57:32 +02:00
Maze Winther b048b739bd Merge branch 'refactor-selection-commands' 2026-03-31 23:40:59 +02:00
Maze Winther dc82826951 refactor: move track pruning into a post-command reactor 2026-03-31 23:39:43 +02:00
Maze Winther 608dc1a62f Merge branch 'feature/separate-audio' 2026-03-31 23:24:33 +02:00
Maze Winther f1d5932c54 feat: separate audio from elements 2026-03-31 23:23:36 +02:00
Maze Winther cc150c7cfb Merge branch 'refactor-selection-commands' 2026-03-31 22:54:06 +02:00
Maze Winther f8fb238b22 feat: centralize selection management 2026-03-31 22:53:16 +02:00
Maze Winther 0488a6be45 fix: normalize vertical drag direction in preferIndex placement 2026-03-31 22:38:56 +02:00
Maze Winther 154b78c7d1 fix: allow timeline paste and duplicate commands to reassign updated tracks 2026-03-31 18:47:45 +02:00
Maze Winther d23be079cc Merge branch 'feature/track-placement' 2026-03-31 15:53:23 +02:00
Maze Winther 70a6d58b84 refactor: centralize track placement into its own module 2026-03-31 15:47:30 +02:00
Maze Winther dcf54c1250 feat: migrate time utilities from typescript to rust WASM 2026-03-31 04:03:52 +02:00
Maze Winther 5cc6abc3a4 style: swap ripple icon 2026-03-29 22:31:26 +02:00
Maze Winther 77a14b1023 refactor: standardize icon component props 2026-03-29 22:30:11 +02:00
Maze Winther 1c3b22edec feat: add keyframe graphs button 2026-03-29 21:48:33 +02:00
Maze Winther 41562baeb5 style: remove unnecessary margin from keyframe 2026-03-29 21:48:08 +02:00
Maze Winther df207e0f83 refactor: name magic numbers and rename el in landing handlebars 2026-03-29 21:18:07 +02:00
Maze Winther dc5956900e fix: eliminate first-paint flicker in landing handlebars 2026-03-29 20:45:48 +02:00
Maze Winther b095862cc0 fix: improve DATABASE_URL validation in web environment schema 2026-03-29 18:58:35 +02:00
Maze Winther 5a1d9ef3f4 chore: remove unused middleware file 2026-03-29 18:30:16 +02:00
Rayan Salhab eb66e03f0e
fix(security): replace new Function() with safe math expression parser (#753)
* fix(security): replace new Function() with safe math expression parser

Replace the dangerous new Function() constructor in evaluateMathExpression()
with a recursive descent parser that safely evaluates basic arithmetic
expressions.

The Function constructor is a security anti-pattern that could enable
arbitrary code execution if the validation regex is ever bypassed or
relaxed. The new parser:

- Only supports numbers, +, -, *, /, parentheses, and whitespace
- Has no eval-like functionality that could execute arbitrary code
- Maintains backward compatibility with existing expressions
- Handles operator precedence and parentheses correctly

Fixes #725

* Apply suggestion from @coderabbitai[bot]

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Maze <167211895+mazeincoding@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-03-29 18:27:05 +02:00
Maze Winther 220ec757d4 refactor: move packages sub-folders into web app 2026-03-29 15:58:46 +02:00
Maze Winther 585e28d49b feat: add published status to changelog entries 2026-03-29 15:58:46 +02:00
Maze Winther c34e01c63e refactor: clean up number formatting and step handling in property tabs 2026-03-29 15:58:46 +02:00
Maze Winther 3e75852ffe chore: remove dead songs tab 2026-03-29 15:58:46 +02:00
Maze Winther f8a0390827 chore: rename proxy to middleware 2026-03-29 15:58:46 +02:00
Maze Winther 4d127a038b chore: normalize line endings 2026-03-29 15:56:48 +02:00