Skip to content

Release v1.3.0 — split panes, block selection, staged deletes & more - #18

Merged
broisnischal merged 21 commits into
masterfrom
worktree-fix-mermaid-ligatures
Jul 4, 2026
Merged

broisnischal merged 21 commits into
masterfrom
worktree-fix-mermaid-ligatures

Conversation

@broisnischal

@broisnischal broisnischal commented Jul 4, 2026 •

Copy link
Copy Markdown
Collaborator

Release v1.3.0

Bumps the product version 1.2.0 → 1.3.0 (package.json, src-tauri/tauri.conf.json).

Highlights

  • Split-pane workspace — drag a tab to a pane edge to split (pointer-based drag with a floating ghost + live drop-zone hints), resizable splitters with a grip, per-pane tab strips, focused-pane accent.
  • Rectangular block cell selection — drag / Shift+Click / Shift+Arrow; ⌘C copies as TSV (with an execCommand fallback for the Tauri webview); Esc collapses.
  • Staged row deletes — red diff row, batched with staged cell edits behind a syntax-highlighted DML preview/confirm (gated by a "Preview SQL before applying" setting).
  • Edit persistence — pending edits/deletes survive tab switches & unmount; unsaved-changes guards on tab close / app quit (in-app confirm).
  • Responsive table toolbar — container queries collapse non-essential controls in narrow/split panes.
  • Persisted default rows-per-page.

Fixes & polish

  • Canvas: horizontal-scroll jitter, pinch-zoom blur, JSON-expand vibration, FK sub-view shift-scroll, derived_inert hardening.
  • Export progress + chunked builders for large CSV/JSON.
  • Mermaid editor ligature fix; AI-chat diagram Save↔Check toggle.
  • Cleaner SQL History/Saved/Charts tab bar; go-to-first/last-column controls (⌘⌥←/→); StatusBar scroll controls.

Notes

  • Split-pane v1: background panes render read-only snapshots; the focused pane is live/editable (follow-up for full multi-pane editing).

Geist Mono renders arrow sequences (->>, -->>) as ligatures that
overlap the preceding word, producing a strikethrough-like artifact
over participant names in the diagram editor/creator. Disable
liga/calt and font-variant-ligatures on the code textarea so raw
Mermaid syntax renders literally.
@changeset-bot

changeset-bot Bot commented Jul 4, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: db3e0e1

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

…ogress, FK scroll

- DataTable: stage row deletes as a red diff (minus + strikethrough), batched
  into Apply with a syntax-highlighted (ShikiBlock) SQL preview
- Preserve staged edits/deletes across tab switches & unmount via a module cache
  (pending-table-edits.js); stable persist-key survives teardown
- Warn before closing a tab or quitting with unsaved changes
- StatusBar: go-to-first/last-column controls + ⌘⌥←/→ shortcuts (shown only on
  horizontal overflow)
- Export: chunked async CSV/JSON builders + loading toast so large exports no
  longer freeze the UI
- AiChat: diagram Save↔Check toggle instead of a permanent 'saved' check;
  drop silent auto-save
- FkSubviewPanel: shift+scroll now scrolls the sub-view, not the main grid
- Drag, Shift+Arrow, and Shift+Click select a rectangular range of cells
- Blue block highlight + border drawn on the canvas
- Cmd/Ctrl+C copies the range as TSV; Escape collapses it
- Range collapses on plain click/arrow and resets on tab switch
Add a resizable split-pane workspace for the main content tabs. Tabs can be
dragged from a pane's tab strip and dropped on another pane's edge to split
(left/right/top/bottom) or center to move between groups. Each pane has its own
tab strip and active tab; the focused pane drives the existing global data
pipeline while background panes render read-only snapshots from tab.state.

- pane-layout.js: pure binary split-tree model + immutable ops
- PaneLayout.svelte: recursive renderer, draggable splitters, drop zones
- PaneSnapshot.svelte: read-only DataTable for background panes
- TabBar.svelte: draggable tabs emitting drag start/end
- StudioShell.svelte: pane state, reconciliation effect, group-aware
  activate/close/focus, DnD + resize handlers, snippet-based rendering
…n, in-app confirm

- Round scrollLeft/Top to whole pixels (canvas sub-pixel shimmer on horizontal scroll)
- Intercept pinch/ctrl-wheel → route to crisp app zoom instead of blurry webview page-zoom
- JSON-expand overlay: position:sticky instead of reactive translateX (fixes vibration)
- Replace window.confirm (blocked in Tauri) with an in-app confirm dialog for close-guards
…tures

- Merge worktree-agent-a40d66183bcdde46c (VS Code-style split panes: drag-tab-to-split,
  resizable splitters, per-pane tab strips, side-by-side tables)
- Add unsaved-changes guard to closeTabInGroup (the new primary close path) so the
  in-app confirm isn't bypassed by pane tab strips / Mod+W
- DataTable bindings (dialect, horizontal-scroll, stage-delete-selected) and the
  in-app confirm dialog verified intact through the merge
…tint, single-cell Cmd+C, clear range on reload
…zone hints

Replace HTML5 drag-and-drop (unreliable in Tauri WebKit) with pointer-based dragging:
- TabBar: pointerdown+threshold drag detection, click-suppression after drag
- Floating tab ghost follows the cursor; live drop-zone hint highlights the target
  region (left/right/top/bottom half or center) via elementFromPoint hit-testing
- PaneLayout: data-pane-group marker + translucent hint overlay driven by dropTarget
Make the table toolbar a @container and progressively hide non-essential controls
as the pane narrows: row-range readout (<600px), page-count (<500px), Add label
(<440px). Fixes the cramped/overlapping pagination when tables sit in split panes.
…ing, narrow-pane icon collapse

1. Splitter: slim track + always-on hairline + hover grip bar + wider hit area
2. Focused-pane accent: top primary line on the active pane (only when >1 pane)
3. Toolbar: divider + gap before the pagination cluster for breathing room
4. Narrow panes: progressively hide Sort/Columns/Jump/Virtual/Open-in-SQL via
   container queries so ultra-thin panes stay uncluttered
- Move copy to document-capture (gated by table focus) so it fires regardless of
  which grid element holds focus — the container onkeydown path could miss it
- Add execCommand fallback for clipboard writes when the async Clipboard API is
  blocked in the Tauri webview
Changing rows-per-page (preset or custom limit input) now saves to localStorage
and becomes the default for every new table tab, surviving restarts.
…ransitions

- New persisted reduceMotion setting; applySettings toggles [data-reduce-motion]
  on <html>. Global app.css rule neutralizes transitions/animations (1ms so
  transitionend still fires) and disables smooth scrolling.
- Also honors OS prefers-reduced-motion unconditionally.
- Toggle added under Settings → Behavior.
draw() runs in the rAF loop (outside any reactive context); reading a $derived
there trips Svelte's derived_inert warning and can return stale values after
teardown. computeCellRange() reads only $state, which is safe to read anywhere.
Feature release covering this cycle's work:

- Split-pane workspace: drag a tab to a pane edge to split, resizable panes,
  per-pane tab strips, focused-pane accent, pointer-based drag with ghost + hints
- Rectangular block cell selection: drag / Shift+Click / Shift+Arrow, Cmd+C copies
  as TSV (with execCommand fallback)
- Staged row deletes shown as a red diff, batched with edits behind a syntax-
  highlighted DML preview/confirm (Preview-SQL setting)
- Pending edits/deletes preserved across tab switches; unsaved-changes close guards
- Table toolbar responsiveness via container queries for narrow/split panes
- Persisted default rows-per-page
- Canvas fixes: horizontal-scroll jitter, pinch-zoom blur, JSON-expand vibration,
  FK sub-view shift-scroll, derived_inert hardening
- Export progress indicator for large CSV/JSON exports
- AI chat diagram save toggle; Mermaid editor ligature fix
- Cleaner SQL history/saved/charts tab bar
@broisnischal
broisnischal marked this pull request as ready for review July 4, 2026 19:18
@broisnischal broisnischal changed the title fix(diagrams): disable font ligatures in Mermaid code editor Release v1.3.0 — split panes, block selection, staged deletes & more Jul 4, 2026
@broisnischal broisnischal self-assigned this Jul 4, 2026
@broisnischal broisnischal added the release:minor Bump minor version (0.x.0) label Jul 4, 2026
@broisnischal
broisnischal merged commit 6f0862e into master Jul 4, 2026
1 check passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release:minor Bump minor version (0.x.0)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant