The test was using an incorrect path for the workflow file. Updated to use the correct path under the nodes/ subdirectory.
Fixes test failure: ENOENT error for single_save_image_node.json
- Remove unnecessary useLayout wrapper that added boilerplate
- Use LayoutMutations interface directly in LGraph instead of redefining types
- Update all components to use composable pattern consistently
* knip: Simplify config
* knip: enable unlisted, fix issues
* knip: Add ignore for build dependencies (Vite plugin indirect reference)
* knip: Prune dependencies
* knip: One more Unused dep
* git: Standard line end for yaml
* [auto-fix] Apply ESLint and Prettier fixes
* knip: Add exceptions for tailwindcss post-rebase.
Not sure why we need to except it.
* Update test expectations [skip ci]
---------
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: github-actions <github-actions@github.com>
* [refactor] Remove caching of Playwright browsers from CI workflow
* restore upload artifact path
* [fix] Adjust timeout for playwright tests to allow up to 15 minutes
* [fix] Update artifact name for Playwright report to match standard naming convention
* feat: use a physical min font size as the LOD threshold instead of an abritrary zoom level that is different on different screens
* feat: min 1px font size, max 24ox font size
* refactor: settings text
* refactor: settings text
* refactor: version
* fix: default font size from 10 to 8
* feat: cache the threshold and move it's calculation out of the render loop
* refactor: comments
* refactor: removed package-lock
* refactor: improve how we manage deprecated settings, and removed any types
* refactor: how the migration settings formula works so we get prev settings closer to the new font size setting
* test: add in zoom and settings test for LOD
* refactor: tests to use best practices
* Update test expectations [skip ci]
---------
Co-authored-by: github-actions <github-actions@github.com>
* temp: move tailwind calls out of the layer
* temp: ts tailwind config
* upgrade: Tailwind v4
This got a little out of hand.
Had to add a relative reference to the stylesheet in any component that uses @apply instead of the utility classes directly.
* upgrade: bg-opacity is now a modifier
* fix: Classic menu buttons assume a border
* Update test expectations [skip ci]
* fix: New preflight removal pattern
* fix: Skeletons don't have skin
* Update test expectations [skip ci]
* fix: Missing @reference
* [auto-fix] Apply ESLint and Prettier fixes
---------
Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: GitHub Action <action@github.com>
* [fix] Enable mouse gestures over video previews - fixes ctrl+scroll zoom and space+drag panning
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* [improve] Enhance code clarity in media gesture handling with descriptive constants
* [clean] Remove dangling comment in handlePointer method
* [improve] Use satisfies and partial mocking for better type safety in tests
- Replace 'as any' with vi.mocked({partial: true}) for store mocks
- Use 'satisfies Partial<Event>' for better event type checking
- Remove 'not.toThrow' test as it tests default behavior
- Improve test readability and type safety per review feedback
* [improve] Test actual canvas existence check instead of side effects
- Replace vague 'graceful handling' test with specific 'early return' test
- Verify that getCanvas() is actually called to check canvas existence
- Test early return behavior when canvas is null rather than just preventDefault side effect
- More robust test that validates the intended logic flow
* [refactor] Use localized mocking instead of global mock functions
- Replace global mockGetCanvas and mockGet with in-situ vi.mocked() calls
- Extract store functions directly in test cases for better locality
- Follow DrJKL's suggestion for cleaner test structure
- Maintains same test coverage with improved readability
---------
Co-authored-by: Claude <noreply@anthropic.com>
* [test] Fix flaky TTL expiration test in remoteWidgets.spec.ts
The test 'refreshes options when TTL expires' was flaky due to timing issues.
Fixed by:
- Increasing initial widget update wait from 256ms to 300ms for stability
- Extending TTL expiration wait from 512ms to 600ms to ensure TTL has fully expired
- Adding explicit click location and wait after refresh trigger
- Adding clear comments explaining the timing requirements
This should make the test more reliable by providing sufficient buffer time for the TTL to expire and the widget to refresh properly.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
* [chore] Fix formatting in remoteWidgets.spec.ts
Remove trailing whitespace as per prettier rules
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Remove type assertions (as ManagerChannel) that bypass TypeScript's type
checking and replace with explicit Record typing. This ensures invalid
enum values are caught at compile time rather than runtime.
- Replace type assertions with Record<string, ManagerChannel> typing
- Remove manual casting that bypassed TypeScript validation
- Ensure enum values are validated during compilation
* [bugfix] Fix invalid ManagerChannel enum value in nodepack installation
Fix nodepack installation failure caused by using 'stable' channel value
which is not defined in the ManagerChannel enum. Changed from 'stable'
to 'default' which is a valid enum value according to the backend schema.
Fixes nodepack installation requests that were failing validation at
/v2/manager/queue/task endpoint.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* [refactor] Enforce type safety for enum values without type assertions
Remove type assertions (as ManagerChannel) and use explicit Record typing
to ensure compile-time validation of enum values. This prevents invalid
enum values from being used by catching them during TypeScript compilation
rather than runtime validation failures.
- Replace type assertions with Record<string, ManagerChannel> typing
- Remove manual casting that bypassed TypeScript's type checking
- Ensure invalid enum values cause compilation errors
---------
Co-authored-by: Claude <noreply@anthropic.com>