vitest@4 pulls in vite@8, which requires esbuild ^0.27 || ^0.28, while the
project pinned esbuild ^0.20. Under npm 10 (CI) this left npm ci expecting a
deduped esbuild@0.28.1 that the lock did not provide, failing the install.
Bump the esbuild devDependency to ^0.28.0 and regenerate the lock so one
esbuild@0.28.1 satisfies both the plugin build and vite. This also clears the
moderate esbuild dev-server advisory (npm audit: 0 vulnerabilities). The build
output (main.js) is unchanged.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Single-finger touch panning now works even when starting on a node; a tap still selects.
- Add keyboard node selection (Tab/Enter/Space/Escape) and validated settings input.
- Guard against overwriting malformed .bowtie files; show a notice and keep original data.
- Add Vitest tests (model/layout/panZoom) and a GitHub Actions CI workflow.
- Split bowtieView into history/panZoom/stackRows/externalSync modules; refresh README, examples, and contributor docs.
Co-authored-by: Cursor <cursoragent@cursor.com>
Align + controls with bezier edge geometry, keep them behind nodes when paths cross, and document the release in CHANGELOG.md.
Co-authored-by: Cursor <cursoragent@cursor.com>