- 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>