
/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/keybindings/migrations/v2-to-v3.ts
  10:13  error  Unsafe type assertion: type 'V2State' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  21:13  error  Unsafe type assertion: type 'ShortcutKey' is more narrow than the original type              @typescript-eslint/no-unsafe-type-assertion
  21:35  error  Unsafe type assertion: type 'TActionWithOptionalArgs' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/keybindings/migrations/v3-to-v4.ts
  11:13  error  Unsafe type assertion: type 'V3State' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  20:13  error  Unsafe type assertion: type 'ShortcutKey' is more narrow than the original type              @typescript-eslint/no-unsafe-type-assertion
  20:35  error  Unsafe type assertion: type 'TActionWithOptionalArgs' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/keybindings/migrations/v4-to-v5.ts
  9:13  error  Unsafe type assertion: type 'V4State' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/keybindings/migrations/v5-to-v6.ts
  9:13  error  Unsafe type assertion: type 'V5State' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/keybindings/migrations/v6-to-v7.ts
   9:13  error  Unsafe type assertion: type 'V6State' is more narrow than the original type        @typescript-eslint/no-unsafe-type-assertion
  12:20  error  Unsafe type assertion: type 'ShortcutKey[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  13:29  error  Unsafe type assertion: type 'never' is more narrow than the original type          @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/registry.ts
  14:1   error  Unused eslint-disable directive (no problems were reported from 'opencut/prefer-object-params')
  17:2   error  Use a single destructured object parameter instead of multiple positional parameters. Example: function someFunction({ name, age }: { name: string, age: number }) {}  opencut/prefer-object-params
  20:23  error  Unsafe type assertion: type 'ActionHandler' is more narrow than the original type                                                                                      @typescript-eslint/no-unsafe-type-assertion
  28:1   error  Unused eslint-disable directive (no problems were reported from 'opencut/prefer-object-params')
  31:2   error  Use a single destructured object parameter instead of multiple positional parameters. Example: function someFunction({ name, age }: { name: string, age: number }) {}  opencut/prefer-object-params
  36:23  error  Unsafe type assertion: type 'ActionHandler' is more narrow than the original type                                                                                      @typescript-eslint/no-unsafe-type-assertion
  57:1   error  Unused eslint-disable directive (no problems were reported from 'opencut/prefer-object-params')
  60:2   error  Use a single destructured object parameter instead of multiple positional parameters. Example: function someFunction({ name, age }: { name: string, age: number }) {}  opencut/prefer-object-params

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/actions/use-action-handler.ts
  11:1   error  Unused eslint-disable directive (no problems were reported from 'opencut/prefer-object-params')
  14:2   error  Use a single destructured object parameter instead of multiple positional parameters. Example: function someFunction({ name, age }: { name: string, age: number }) {}     opencut/prefer-object-params
  24:24  error  Unsafe type assertion: type 'TActionFunc<A>' is more narrow than the original type                                                                                        @typescript-eslint/no-unsafe-type-assertion
  27:5   error  Unsafe type assertion: type '(handlerParameters_0: TArgOfAction<A>, handlerParameters_1?: TInvocationTrigger | undefined) => void' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/animation/interpolation.ts
  163:10  error  Unsafe type assertion: the original type is assignable to the constraint of type 'TChannel', but 'TChannel' could be instantiated with a different subtype of its constraint  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/animation/keyframe-query.ts
  116:26  error  Unsafe type assertion: type 'Record<string, AnimationComponentValue | undefined>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/animation/keyframes.ts
    23:2   warning  'getBezierPoint' is defined but never used. Allowed unused vars must match /^_/u      @typescript-eslint/no-unused-vars
   518:14  error    Unsafe type assertion: type 'string | boolean' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   524:14  error    Unsafe type assertion: type 'number' is more narrow than the original type            @typescript-eslint/no-unsafe-type-assertion
   637:12  error    Unsafe type assertion: type 'AnimationChannel' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   671:12  error    Unsafe type assertion: type 'AnimationChannel' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   875:14  error    Unsafe type assertion: type 'AnimationChannel' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   971:13  error    Unsafe type assertion: type 'string | boolean' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   980:13  error    Unsafe type assertion: type 'string | boolean' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  1067:25  error    Unsafe type assertion: type 'number' is more narrow than the original type            @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/animation/property-registry.ts
  129:54  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  145:54  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  159:50  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  172:50  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  185:50  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  196:30  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  206:29  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  217:28  error  Unsafe type assertion: type 'string' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  231:51  error  Unsafe type assertion: type 'string' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  246:54  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  261:54  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  276:53  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  291:53  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  310:58  error  Unsafe type assertion: type 'number' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/animation/resolve.ts
  60:26  error  Unsafe type assertion: type 'Record<string, AnimationComponentValue | undefined>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  75:9   error  Unsafe type assertion: type 'AnimationValueForPath<TPath>' is more narrow than the original type                         @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/animation/types.ts
    1:15  warning  'ParamValues' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars
  104:18  warning  An interface declaring no members is equivalent to its supertype               @typescript-eslint/no-empty-object-type
  146:18  warning  An interface declaring no members is equivalent to its supertype               @typescript-eslint/no-empty-object-type
  149:18  warning  An interface declaring no members is equivalent to its supertype               @typescript-eslint/no-empty-object-type
  157:18  warning  An interface declaring no members is equivalent to its supertype               @typescript-eslint/no-empty-object-type

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/brand/page.tsx
  193:48  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`  react/no-unescaped-entities

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/contributors/page.tsx
  48:24  error  Unsafe assertion from `any` detected: consider using type guards or a safer assertion  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/editor/[project_id]/page.tsx
  40:20  error  Unsafe type assertion: type 'string' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/layout.tsx
  5:10  warning  'ChangelogNotification' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/privacy/page.tsx
   60:18  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
   60:64  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  172:6   error  Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations  react/jsx-no-target-blank
  189:6   error  Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations  react/jsx-no-target-blank
  205:6   error  Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations  react/jsx-no-target-blank

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/projects/page.tsx
  880:15  error  Unsafe type assertion: type 'MouseEvent<HTMLButtonElement, MouseEvent>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  886:15  error  Unsafe type assertion: type 'KeyboardEvent<HTMLButtonElement>' is more narrow than the original type           @typescript-eslint/no-unsafe-type-assertion
  981:24  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`                                                react/no-unescaped-entities
  981:38  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`                                                react/no-unescaped-entities

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/app/terms/page.tsx
   54:15  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
   54:55  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
   56:26  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`                                                                                                                        react/no-unescaped-entities
   56:32  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`                                                                                                                        react/no-unescaped-entities
   56:42  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  112:9   error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  113:9   error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  130:6   error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`                                                                                                                        react/no-unescaped-entities
  130:12  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`                                                                                                                        react/no-unescaped-entities
  130:73  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  146:6   error  Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations  react/jsx-no-target-blank
  164:12  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  169:12  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  183:12  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                        react/no-unescaped-entities
  203:6   error  Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations  react/jsx-no-target-blank
  219:6   error  Using target="_blank" without rel="noreferrer" (which implies rel="noopener") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations  react/jsx-no-target-blank

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/auth/server.ts
  31:12  error  Unsafe type assertion: type '{ key: string; count: number; lastRequest: number; } | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/blog/query.ts
  77:10  error  Unsafe assertion from `any` detected: consider using type guards or a safer assertion  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/changelog/components/changelog-notification.tsx
  45:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/changelog/components/changelog-notification.tsx:45:3
  43 | 		}
  44 |
> 45 | 		setRelease(latest);
     | 		^^^^^^^^^^ Avoid calling setState() directly within an effect
  46 | 	}, []);
  47 |
  48 | 	if (!release) return null;  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/clipboard/handlers/index.ts
  48:32  error  Unsafe type assertion: type 'never' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/scene/remove-bookmark.ts
  13:33  error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/scene/toggle-bookmark.ts
  13:33  error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/effects/add-effect.ts
  52:14  error  Unsafe type assertion: type 'VisualElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/effects/remove-effect.ts
  50:14  error  Unsafe type assertion: type 'VisualElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/effects/reorder-effect.ts
  57:14  error  Unsafe type assertion: type 'VisualElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/effects/toggle-effect.ts
  52:14  error  Unsafe type assertion: type 'VisualElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/effects/update-effect-params.ts
  70:15  error  Unsafe type assertion: type 'VisualElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/masks/delete-custom-mask-points.ts
  104:15  error  Unsafe type assertion: type 'MaskableElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/masks/insert-custom-mask-point.ts
  134:15  error  Unsafe type assertion: type 'MaskableElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/masks/remove-mask.ts
  50:15  error  Unsafe type assertion: type 'MaskableElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/commands/timeline/element/masks/toggle-mask-inverted.ts
  61:15  error  Unsafe type assertion: type 'MaskableElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/editor/mobile-gate.tsx
  23:3   error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/editor/mobile-gate.tsx:23:3
  21 | 		const isMobile = window.innerWidth < 1024;
  22 | 		const acknowledged = localStorage.getItem(STORAGE_KEY) === "true";
> 23 | 		setShow(isMobile && !acknowledged);
     | 		^^^^^^^ Avoid calling setState() directly within an effect
  24 | 	}, []);
  25 |
  26 | 	if (show === null) return null;  react-hooks/set-state-in-effect
  55:18  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       react/no-unescaped-entities

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/editor/panels/assets/assets-panel-store.tsx
  14:2  warning  'ColorsIcon' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars
  34:2  error    Component definition is missing display name                                  react/display-name

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/editor/panels/assets/views/settings/background.tsx
   90:3   error  'backgrounds' is missing in props validation                                                    react/prop-types
   91:3   error  'currentBackgroundColor' is missing in props validation                                         react/prop-types
   92:3   error  'isColorBackground' is missing in props validation                                              react/prop-types
   93:3   error  'onSelect' is missing in props validation                                                       react/prop-types
   94:3   error  'useBackgroundColor' is missing in props validation                                             react/prop-types
  104:17  error  'backgrounds.map' is missing in props validation                                                react/prop-types
  110:53  error  'currentBackgroundColor.toLowerCase' is missing in props validation                             react/prop-types
  225:6   error  Unsafe type assertion: type '{ blurIntensity: number; }' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  230:6   error  Unsafe type assertion: type '{ color: string; }' is more narrow than the original type          @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/editor/panels/properties/empty-view.tsx
  13:43  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`  react/no-unescaped-entities

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/footer.tsx
  83:9  error  Unsafe type assertion: type 'Category[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/header.tsx
  19:28  warning  'SITE_URL' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/providers/editor-provider.tsx
  137:3  error  Error: This value cannot be modified

Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed.

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/providers/editor-provider.tsx:137:3
  135 |
  136 | 	useEffect(() => {
> 137 | 		editor.command.isRippleEnabled = rippleEditingEnabled;
      | 		^^^^^^^^^^^^^^ `editor` cannot be modified
  138 | 	}, [editor, rippleEditingEnabled]);
  139 |
  140 | 	useEffect(() => {  react-hooks/immutability
  144:5  error  Unsafe type assertion: type '{ returnValue: string; }' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                     @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/storage-provider.tsx
  76:5  warning  React Hook useEffect has a missing dependency: 'editor.project'. Either include it or remove the dependency array  react-hooks/exhaustive-deps

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/alert.tsx
  48:2  error  Headings must have content and the content must be accessible by a screen reader  jsx-a11y/heading-has-content

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/color-picker.tsx
   81:3   error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/color-picker.tsx:81:3
  79 |
  80 | 	useEffect(() => {
> 81 | 		setInputValue(formatColorValue({ hex: value, format: colorFormat }));
     | 		^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  82 | 	}, [value, colorFormat]);
  83 |
  84 | 	useEffect(() => {  react-hooks/set-state-in-effect
  376:23  error  Unsafe type assertion: type 'ColorFormat' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 @typescript-eslint/no-unsafe-type-assertion
  435:4   error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/color-picker.tsx:435:4
  433 |
  434 | 		useEffect(() => {
> 435 | 			setInputValue(value);
      | 			^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  436 | 		}, [value]);
  437 |
  438 | 		const commitInputValue = (raw: string) => {                        react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/dropdown-menu.tsx
  145:6  error  Unsafe type assertion: type 'ReactElement<{ children?: ReactNode; }, string | JSXElementConstructor<any>>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  148:7  error  Unsafe type assertion: type 'ReactElement<{ children?: ReactNode; }, string | JSXElementConstructor<any>>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/font-picker.tsx
  80:4  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/font-picker.tsx:80:4
  78 | 	useEffect(() => {
  79 | 		if (!open) {
> 80 | 			setSearch("");
     | 			^^^^^^^^^ Avoid calling setState() directly within an effect
  81 | 			setActiveTab("all");
  82 | 		}
  83 | 	}, [open]);  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/form.tsx
   59:6  error  Unsafe assertion from `any` detected: consider using type guards or a safer assertion                           @typescript-eslint/no-unsafe-type-assertion
  113:2  error  Unsafe type assertion: type 'FormFieldContextValue<FieldValues, string>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  157:2  error  Unsafe type assertion: type 'FormItemContextValue' is more narrow than the original type                        @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/number-field.tsx
  134:2  warning  'ref' is defined but never used. Allowed unused args must match /^_/u                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @typescript-eslint/no-unused-vars
  148:4  error    Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/number-field.tsx:148:4
  146 | 	useLayoutEffect(() => {
  147 | 		if (!suffix) {
> 148 | 			setSuffixLeft(0);
      | 			^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  149 | 			return;
  150 | 		}
  151 | 		if (!ghostRef.current || !inputRef.current) return;  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/prose.tsx
  92:19  error  Unsafe type assertion: type 'HastRootNode' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/resizable.tsx
  23:2  warning  'withHandle' is defined but never used. Allowed unused args must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/sonner.tsx
  13:11  error  Unsafe type assertion: type '"system" | "light" | "dark" | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/components/ui/table.tsx
  72:6  error  'className' is missing in props validation  react/prop-types
  87:6  error  'className' is missing in props validation  react/prop-types

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/core/managers/audio-manager.ts
  228:12  warning  Empty block statement                                                                                no-empty
  473:17  error    Unsafe type assertion: type '{ mode?: unknown; } | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/core/managers/playback-manager.ts
  246:28  warning  'time' is defined but never used. Allowed unused args must match /^_/u  @typescript-eslint/no-unused-vars
  252:30  warning  'time' is defined but never used. Allowed unused args must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/core/managers/project-manager.ts
  558:24  error  Unsafe type assertion: type '[TProjectSortKey, "desc" | "asc"]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/core/managers/renderer-manager.ts
  9:10  warning  'frameRateToFloat' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/core/managers/timeline-manager.ts
  562:6   error  Unsafe type assertion: type 'AnimationValueForPath<AnimationPath> | null' is more narrow than the original type                                                                    @typescript-eslint/no-unsafe-type-assertion
  722:24  error  Unsafe type assertion: type '"trimEnd" | "trimStart" | "animations" | "type" | "id" | "name" | "duration" | "startTime" | "sourceDuration"' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  728:27  error  Unsafe type assertion: type 'Partial<TimelineElement>' is more narrow than the original type                                                                                       @typescript-eslint/no-unsafe-type-assertion
  787:9   error  Unsafe type assertion: type 'TimelineElement' is more narrow than the original type                                                                                                @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/editor/panel-store.ts
  46:19  error  Unsafe type assertion: type '{ panels?: Partial<PanelSizes> | null | undefined; toolsPanel?: number | undefined; previewPanel?: number | undefined; propertiesPanel?: number | undefined; ... 4 more ...; properties?: number | undefined; } | null | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/feedback/components/feedback-popover.tsx
   35:20  error    Unsafe assertion from `any` detected: consider using type guards or a safer assertion                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          @typescript-eslint/no-unsafe-type-assertion
  191:10  warning  Compilation Skipped: Use of incompatible library

This API returns functions which cannot be memoized without leading to stale UI. To prevent this, by default React Compiler will skip memoizing this component/hook. However, you may see issues if values from this API are passed to other components/hooks that are memoized.

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/feedback/components/feedback-popover.tsx:191:10
  189 | 						)}
  190 | 						<div className="flex gap-2">
> 191 | 							{!form.watch("message").trim() && (
      | 							  ^^^^ React Hook Form's `useForm()` API returns a `watch()` function which cannot be memoized safely.
  192 | 								<Button
  193 | 									type="button"
  194 | 									variant="outline"  react-hooks/incompatible-library

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/fonts/use-font-atlas.ts
  23:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/fonts/use-font-atlas.ts:23:3
  21 | 		if (!open || atlas) return;
  22 |
> 23 | 		setStatus("loading");
     | 		^^^^^^^^^ Avoid calling setState() directly within an effect
  24 | 		loadFontAtlas().then((data) => {
  25 | 			if (data) {
  26 | 				setAtlas(data);  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/gradients/canvas.ts
  463:20  error  Unsafe type assertion: type 'PositionKeyword' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  464:20  error  Unsafe type assertion: type 'PositionKeyword' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  631:18  error  Unsafe type assertion: type 'PositionKeyword' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/gradients/parser.ts
  331:17  error  Unsafe type assertion: type 'Shape | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  347:18  error  Unsafe type assertion: type 'Shape | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/graphics/definitions/ellipse.ts
  50:23  error  Unsafe type assertion: type 'GraphicStrokeAlign' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/graphics/definitions/polygon.ts
  176:23  error  Unsafe type assertion: type 'GraphicStrokeAlign' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/graphics/definitions/rectangle.ts
  61:23  error  Unsafe type assertion: type 'GraphicStrokeAlign' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/graphics/definitions/star.ts
  72:23  error  Unsafe type assertion: type 'GraphicStrokeAlign' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/graphics/stroke.ts
  75:21  error  Unsafe type assertion: type 'GraphicRenderContext | null' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/hooks/use-mobile.ts
  14:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/hooks/use-mobile.ts:14:3
  12 | 		};
  13 | 		mql.addEventListener("change", onChange);
> 14 | 		setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
     | 		^^^^^^^^^^^ Avoid calling setState() directly within an effect
  15 | 		return () => mql.removeEventListener("change", onChange);
  16 | 	}, []);
  17 |  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/__tests__/snap.test.ts
  153:9  error  Unsafe type assertion: type '[{ x: number; y: number; }, { x: number; y: number; }]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/components/masks-tab.tsx
  222:19  error  Unsafe type assertion: type 'Partial<MaskableElement>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/custom-path.ts
  20:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  44:9   error  Unsafe type assertion: type 'CustomMaskHandlePart' is more narrow than the original type     @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/cinematic-bars.ts
   98:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  114:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/custom.ts
  451:19  error  Unsafe type assertion: type 'CustomMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  474:19  error  Unsafe type assertion: type 'CustomMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/diamond.ts
  72:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  84:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/ellipse.ts
  39:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  55:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/heart.ts
  114:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  126:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/rectangle.ts
  69:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  81:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/split.ts
   78:41  error  Unsafe type assertion: type 'SplitMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  272:43  error  Unsafe type assertion: type 'SplitMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  297:43  error  Unsafe type assertion: type 'SplitMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/star.ts
  112:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  124:19  error  Unsafe type assertion: type 'RectangleMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/definitions/text.ts
  374:19  error  Unsafe type assertion: type 'TextMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  395:19  error  Unsafe type assertion: type 'TextMaskParams' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/index.ts
  17:9  error  Unsafe type assertion: type 'Mask' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/registry.ts
  101:51  error  Unsafe type assertion: type 'never' is more narrow than the original type                                                                                                   @typescript-eslint/no-unsafe-type-assertion
  104:18  error  Unsafe type assertion: type 'never' is more narrow than the original type                                                                                                   @typescript-eslint/no-unsafe-type-assertion
  104:48  error  Unsafe type assertion: type 'never' is more narrow than the original type                                                                                                   @typescript-eslint/no-unsafe-type-assertion
  108:41  error  Unsafe type assertion: the original type is assignable to the constraint of type 'TParams', but 'TParams' could be instantiated with a different subtype of its constraint  @typescript-eslint/no-unsafe-type-assertion
  114:42  error  Unsafe type assertion: type 'never' is more narrow than the original type                                                                                                   @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/snap.ts
  316:10  error  Unsafe type assertion: type 'MaskSnapResult<TParams>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  325:10  error  Unsafe type assertion: type 'MaskSnapResult<TParams>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  328:9   error  Unsafe type assertion: type 'MaskSnapResult<TParams>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/masks/use-mask-handles.ts
  140:22  error    Unsafe type assertion: type 'MaskableElement' is more narrow than the original type                                                                                                                                @typescript-eslint/no-unsafe-type-assertion
  199:8   warning  The 'customMaskPointIds' conditional could make the dependencies of useEffect Hook (at line 253) change on every render. To fix this, wrap the initialization of 'customMaskPointIds' in its own useMemo() Hook    react-hooks/exhaustive-deps
  199:8   warning  The 'customMaskPointIds' conditional could make the dependencies of useCallback Hook (at line 444) change on every render. To fix this, wrap the initialization of 'customMaskPointIds' in its own useMemo() Hook  react-hooks/exhaustive-deps
  407:27  error    Unsafe type assertion: type 'HTMLElement' is more narrow than the original type                                                                                                                                    @typescript-eslint/no-unsafe-type-assertion
  437:26  error    Unsafe type assertion: type 'HTMLElement' is more narrow than the original type                                                                                                                                    @typescript-eslint/no-unsafe-type-assertion
  569:13  error    Unsafe type assertion: type 'SplitMaskParams | RectangleMaskParams | TextMaskParams | CustomMaskParams' is more narrow than the original type                                                                      @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/media/processing.ts
   10:18  warning  An interface declaring no members is equivalent to its supertype                      @typescript-eslint/no-empty-object-type
  199:19  error    Unsafe type assertion: type 'HTMLVideoElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/media/use-paste-media.ts
  43:26  error  Unsafe type assertion: type 'HTMLElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/components/overlay-layer.tsx
  157:5  error  Unsafe type assertion: type '[PreviewOverlayHudAnchor, PreviewOverlayInstance[]][]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/components/preview-viewport.tsx
  467:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/components/preview-viewport.tsx:467:3
  465 |
  466 | 	useEffect(() => {
> 467 | 		setZoomState(1);
      | 		^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  468 | 		setCenter({
  469 | 			x: canvasWidth / 2,
  470 | 			y: canvasHeight / 2,           react-hooks/set-state-in-effect
  477:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/components/preview-viewport.tsx:477:3
  475 |
  476 | 	useEffect(() => {
> 477 | 		setCenter((previousCenter) =>
      | 		^^^^^^^^^ Avoid calling setState() directly within an effect
  478 | 			clampViewportCenter({
  479 | 				canvasHeight,
  480 | 				canvasWidth,  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/components/toolbar.tsx
  25:10  warning  'GridPopover' is defined but never used. Allowed unused vars must match /^_/u      @typescript-eslint/no-unused-vars
  26:10  warning  'usePreviewStore' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/controllers/preview-interaction-controller.ts
  354:19  error  Unsafe type assertion: type 'HTMLElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/controllers/transform-handle-controller.ts
  384:13  error  Unsafe type assertion: type 'HTMLElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  418:13  error  Unsafe type assertion: type 'HTMLElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  459:13  error  Unsafe type assertion: type 'HTMLElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/preview/preview-store.ts
  86:19  error  Unsafe type assertion: type 'PersistedPreviewState | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/project/components/delete-project-dialog.tsx
  63:13  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`  react/no-unescaped-entities
  63:20  error  `"` can be escaped with `&quot;`, `&ldquo;`, `&#34;`, `&rdquo;`  react/no-unescaped-entities

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/ripple/diff.ts
  1:45  warning  'TimelineTrack' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/selection/selectable-surface.tsx
  212:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/selection/selectable-surface.tsx:212:3
  210 |
  211 | 	useEffect(() => {
> 212 | 		setSelectionState((state) =>
      | 		^^^^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  213 | 			pruneSelection({
  214 | 				state,
  215 | 				orderedIds,                                      react-hooks/set-state-in-effect
  229:3  error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/selection/selectable-surface.tsx:229:3
  227 | 		}
  228 |
> 229 | 		setHighlightedId(revealId);
      | 		^^^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  230 | 		getItemElement(revealId)?.scrollIntoView({ block: "center" });
  231 |
  232 | 		const timer = setTimeout(() => {  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/canvas-renderer.ts
  43:18  error  Unsafe type assertion: type 'OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  71:18  error  Unsafe type assertion: type 'OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/compositor/frame-descriptor.ts
  421:26  error  Unsafe type assertion: type 'OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D | null' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  472:22  error  Unsafe type assertion: type 'OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D | null' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/compositor/wasm-compositor.ts
  94:5  error  Unsafe assertion from `any` detected: consider using type guards or a safer assertion  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/effect-preview.ts
  110:15  error  Unsafe type assertion: type 'OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D | null' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  149:10  error  Unsafe type assertion: type 'OffscreenCanvas | HTMLCanvasElement' is more narrow than the original type                                  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/mask-feather.ts
  14:9  error  Unsafe type assertion: type 'OffscreenCanvas | HTMLCanvasElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/nodes/base-node.ts
  12:28  error  Unsafe type assertion: the original type is assignable to the constraint of type 'Params', but 'Params' could be instantiated with a different subtype of its constraint  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/renderer/nodes/graphic-node.ts
  55:15  error  Unsafe type assertion: type 'OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D | null' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/components/storage-persistence-dialog.tsx
  21:22  error  `'` can be escaped with `&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`  react/no-unescaped-entities

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/indexeddb-adapter.ts
  30:17  error  Unsafe type assertion: type 'IDBOpenDBRequest' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  88:38  error  Unsafe type assertion: type 'string[]' is more narrow than the original type          @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v0-to-v1.test.ts
  25:12  error  Unsafe type assertion: type 'unknown[]' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  35:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  51:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v1-to-v2.test.ts
   28:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
   38:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
   47:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
   48:23  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
   61:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
   62:23  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
   70:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   80:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  105:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  118:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  122:23  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  138:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  139:23  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  186:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  188:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  243:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  245:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  305:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  306:19  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  307:21  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v15-to-v16.test.ts
  65:5  error  Unsafe type assertion: type '{ tracks: { type: string; }[]; }[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v16-to-v17.test.ts
  101:6  error  Unsafe type assertion: type '{ tracks: { elements: { masks: { params: Record<string, unknown>; }[]; }[]; }[]; }[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v18-to-v19.test.ts
  30:5  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  33:5  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  36:5  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v19-to-v20.test.ts
   86:5  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   86:6  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   95:5  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   95:6  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   95:7  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  124:5  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  124:6  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  124:7  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v2-to-v3.test.ts
   20:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   27:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   39:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   48:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   58:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   94:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  125:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  159:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v20-to-v21.test.ts
  30:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  31:22  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  48:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  49:22  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  68:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v21-to-v22.test.ts
  80:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  81:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  82:20  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  83:22  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  84:20  error  Unsafe type assertion: type 'Record<string, Record<string, unknown>>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  85:20  error  Unsafe type assertion: type 'Record<string, Record<string, unknown>>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v22-to-v23.test.ts
  104:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  107:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  110:29  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  117:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  129:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  130:20  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  138:22  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  139:20  error  Unsafe type assertion: type 'Record<string, Record<string, unknown>>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v26-to-v27.test.ts
  62:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  63:18  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  64:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  65:20  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  66:17  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  67:24  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion
  68:27  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type    @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v27-to-v28.test.ts
   99:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  102:29  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  110:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  121:18  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  122:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  123:20  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  131:22  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  132:20  error  Unsafe type assertion: type 'Record<string, Record<string, unknown>>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  207:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  210:29  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  220:18  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
  224:18  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  225:21  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type                  @typescript-eslint/no-unsafe-type-assertion
  226:20  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v3-to-v4.test.ts
   58:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   61:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   64:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  108:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  111:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  114:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v4-to-v5.test.ts
   52:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   55:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   58:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  105:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  108:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  111:4  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v5-to-v6.test.ts
  17:4  error  Unsafe type assertion: type '{ bookmarks: unknown[]; }[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  26:4  error  Unsafe type assertion: type '{ bookmarks: unknown[]; }[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  87:4  error  Unsafe type assertion: type '{ bookmarks: unknown[]; }[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/__tests__/v8-to-v9.test.ts
   74:4   error  Unsafe type assertion: type '{ tracks: { elements: unknown[]; }[]; }[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion
   76:20  error  Unsafe type assertion: type '{ background: { enabled: boolean; color: string; }; }[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   90:10  error  Unsafe type assertion: type 'Record<string, unknown>[]' is more narrow than the original type                                @typescript-eslint/no-unsafe-type-assertion
  119:20  error  Unsafe type assertion: type '{ background: { enabled: boolean; }; }[]' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  120:4   error  Unsafe type assertion: type '{ tracks: { elements: unknown[]; }[]; }[]' is more narrow than the original type                @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/transformers/v1-to-v2.ts
  318:12  error  Unsafe type assertion: type 'LegacyMediaTrack' is more narrow than the original type                       @typescript-eslint/no-unsafe-type-assertion
  357:24  error  Unsafe type assertion: type 'LegacyMediaElement' is more narrow than the original type                     @typescript-eslint/no-unsafe-type-assertion
  445:24  error  Unsafe type assertion: type 'LegacyTextElement' is more narrow than the original type                      @typescript-eslint/no-unsafe-type-assertion
  492:16  error  Unsafe type assertion: type '"left" | "right" | "center"' is more narrow than the original type            @typescript-eslint/no-unsafe-type-assertion
  496:17  error  Unsafe type assertion: type '"bold" | "normal"' is more narrow than the original type                      @typescript-eslint/no-unsafe-type-assertion
  500:16  error  Unsafe type assertion: type '"normal" | "italic"' is more narrow than the original type                    @typescript-eslint/no-unsafe-type-assertion
  504:21  error  Unsafe type assertion: type '"none" | "underline" | "line-through"' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  541:25  error  Unsafe type assertion: type 'LegacyAudioElement' is more narrow than the original type                     @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/transformers/v13-to-v14.ts
  97:48  error  Unsafe type assertion: type 'Record<string, unknown> & { position: unknown; }' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/transformers/v21-to-v22.ts
  60:11  warning  'LegacyVectorKeyframe' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/transformers/v26-to-v27.ts
  19:20  error  Unsafe type assertion: type 'Record<string, unknown>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/migrations/transformers/v3-to-v4.ts
  173:4  error  Unsafe type assertion: type '"bold" | "normal"' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/opfs-adapter.ts
  23:9  error  Unsafe type assertion: type 'Error' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  50:9  error  Unsafe type assertion: type 'Error' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/service.ts
   34:16  error  Unsafe assertion from `any` detected: consider using type guards or a safer assertion  @typescript-eslint/no-unsafe-type-assertion
  270:16  error  Unsafe type assertion: type 'TScene[]' is more narrow than the original type           @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/use-local-storage.ts
  23:25  error  Unsafe assertion from `any` detected: consider using type guards or a safer assertion                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    @typescript-eslint/no-unsafe-type-assertion
  25:5   error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/storage/use-local-storage.ts:25:5
  23 | 				const parsedValue = JSON.parse(storedValue) as T;
  24 | 				valueRef.current = parsedValue;
> 25 | 				setValue(parsedValue);
     | 				^^^^^^^^ Avoid calling setState() directly within an effect
  26 | 			}
  27 | 		} catch {
  28 | 			// localstorage might be unavailable  react-hooks/set-state-in-effect
  48:9   error  Unsafe type assertion: type '(previousValue: T) => T' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/services/transcription/worker.ts
  60:17  error  Unsafe type assertion: type 'AutomaticSpeechRecognitionPipeline' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/sounds/components/assets-view.tsx
  194:16  error  Unsafe type assertion: type 'UIEvent<HTMLDivElement, UIEvent>' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/stickers/components/assets-view.tsx
   77:38  error  Unsafe type assertion: type '"all" | "flags" | "shapes"' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        @typescript-eslint/no-unsafe-type-assertion
  301:19  error  Unsafe type assertion: type '"all" | "flags" | "shapes"' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        @typescript-eslint/no-unsafe-type-assertion
  341:3   error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/stickers/components/assets-view.tsx:341:3
  339 | 		}
  340 |
> 341 | 		setHasImageError(false);
      | 		^^^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  342 | 	}, [item.id]);
  343 |
  344 | 	const displayName = item.name;  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/stickers/index.ts
  196:20  error  Unsafe type assertion: type '"all" | "flags" | "shapes"' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  264:21  error  Unsafe type assertion: type '"all" | "flags" | "shapes"' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/stickers/stickers-store.ts
  214:25  error  Unsafe type assertion: type '{ selectedCategory?: string | undefined; recentStickers?: string[] | undefined; }' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  223:12  error  Unsafe type assertion: type '"all" | "flags" | "shapes"' is more narrow than the original type                                                         @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/subtitles/ass.ts
  314:9  error  Unsafe type assertion: the original type is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of its constraint  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/text/layout.ts
  32:4  error  Unsafe type assertion: type 'CanvasRenderingContext2D & { letterSpacing: string; }' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/animation-properties.ts
   12:10  warning  'isAnimationPropertyPath' is defined but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars
  128:54  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  144:54  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  158:50  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  171:50  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  184:50  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  195:30  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  205:29  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  216:28  error    Unsafe type assertion: type 'string' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  230:51  error    Unsafe type assertion: type 'string' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  245:54  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  260:54  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  275:53  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  290:53  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion
  309:58  error    Unsafe type assertion: type 'number' is more narrow than the original type                 @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/bookmarks/components/bookmarks.tsx
   99:40  error  Unsafe type assertion: type 'Node' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @typescript-eslint/no-unsafe-type-assertion
  103:40  error  Unsafe type assertion: type 'Node' is more narrow than the original type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               @typescript-eslint/no-unsafe-type-assertion
  308:3   error  Error: Calling setState synchronously within an effect can trigger cascading renders

Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
* Update external systems with the latest state from React.
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.

Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/bookmarks/components/bookmarks.tsx:308:3
  306 |
  307 | 	useEffect(() => {
> 308 | 		setDraftColorHex(
      | 		^^^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
  309 | 			(bookmark.color ?? DEFAULT_TIMELINE_BOOKMARK_COLOR)
  310 | 				.replace("#", "")
  311 | 				.toUpperCase(),  react-hooks/set-state-in-effect

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/bookmarks/hooks/use-bookmark-drag.ts
  54:8  warning  The 'bookmarks' logical expression could make the dependencies of useCallback Hook (at line 123) change on every render. Move it inside the useCallback callback. Alternatively, wrap the initialization of 'bookmarks' in its own useMemo() Hook  react-hooks/exhaustive-deps

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/components/audio-volume-line.tsx
  245:5  error  Visible, non-interactive elements with click handlers must have at least one keyboard listener                                                                                                     jsx-a11y/click-events-have-key-events
  245:5  error  Avoid non-native interactive elements. If using native HTML is not possible, add an appropriate role and support for tabbing, mouse, keyboard, and touch inputs to an interactive content element  jsx-a11y/no-static-element-interactions

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/components/drop-target.ts
  119:8  warning  'mainTrackIndex' is assigned a value but never used. Allowed unused vars must match /^_/u  @typescript-eslint/no-unused-vars

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/components/index.tsx
  515:8  error  Visible, non-interactive elements with click handlers must have at least one keyboard listener                                                                                                     jsx-a11y/click-events-have-key-events
  515:8  error  Avoid non-native interactive elements. If using native HTML is not possible, add an appropriate role and support for tabbing, mouse, keyboard, and touch inputs to an interactive content element  jsx-a11y/no-static-element-interactions
  895:9  error  Visible, non-interactive elements with click handlers must have at least one keyboard listener                                                                                                     jsx-a11y/click-events-have-key-events
  895:9  error  Avoid non-native interactive elements. If using native HTML is not possible, add an appropriate role and support for tabbing, mouse, keyboard, and touch inputs to an interactive content element  jsx-a11y/no-static-element-interactions

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/components/timeline-element.tsx
  810:3  error  Visible, non-interactive elements with click handlers must have at least one keyboard listener                                                                                                     jsx-a11y/click-events-have-key-events
  810:3  error  Avoid non-native interactive elements. If using native HTML is not possible, add an appropriate role and support for tabbing, mouse, keyboard, and touch inputs to an interactive content element  jsx-a11y/no-static-element-interactions

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/components/timeline-track.tsx
  65:4  error  Avoid non-native interactive elements. If using native HTML is not possible, add an appropriate role and support for tabbing, mouse, keyboard, and touch inputs to an interactive content element  jsx-a11y/no-static-element-interactions

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/controllers/playhead-controller.ts
  145:45  error  Unsafe type assertion: type 'Node' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/controllers/seek-controller.ts
  162:18  error  Unsafe type assertion: type 'HTMLElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/controllers/zoom-controller.ts
  280:46  error  Unsafe type assertion: type 'Node' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/element-utils.ts
  211:11  error  Unsafe type assertion: type 'ParamValues' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/hooks/use-element-preview.ts
  25:4  error  Unsafe type assertion: type 'T | undefined' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/index.ts
  27:23  error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/placement/apply.ts
    9:2   warning  'TimelineTrack' is defined but never used. Allowed unused vars must match /^_/u                          @typescript-eslint/no-unused-vars
  123:13  error    Unsafe type assertion: type 'AudioElement[]' is more narrow than the original type                       @typescript-eslint/no-unsafe-type-assertion
  140:15  error    Unsafe type assertion: type '(VideoElement | ImageElement)[]' is more narrow than the original type      @typescript-eslint/no-unsafe-type-assertion
  145:15  error    Unsafe type assertion: type 'TextElement[]' is more narrow than the original type                        @typescript-eslint/no-unsafe-type-assertion
  150:15  error    Unsafe type assertion: type '(StickerElement | GraphicElement)[]' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  155:15  error    Unsafe type assertion: type 'EffectElement[]' is more narrow than the original type                      @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/timeline/update-pipeline.ts
  144:20  error  Unsafe type assertion: type 'TimelineElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/utils/browser.ts
  40:12  error  Unsafe type assertion: type 'HTMLInputElement' is more narrow than the original type     @typescript-eslint/no-unsafe-type-assertion
  44:12  error  Unsafe type assertion: type 'HTMLTextAreaElement' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

/home/heart/coding/video-editor-oss.worktrees/biome-to-eslint/apps/web/src/wasm/media-time.ts
   29:32  error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   42:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   55:10  error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   57:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   71:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
   90:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  100:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  144:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  166:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  176:9   error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion
  189:38  error  Unsafe type assertion: type 'MediaTime' is more narrow than the original type  @typescript-eslint/no-unsafe-type-assertion

✖ 418 problems (390 errors, 28 warnings)
  10 errors and 0 warnings potentially fixable with the `--fix` option.

