Skip to content

Data-table, SQL editor, JSON viewer & extensions improvements (minor release) - #36

Merged
broisnees merged 7 commits into
masterfrom
feat/minor-improvements
Jul 5, 2026
Merged

broisnees merged 7 commits into
masterfrom
feat/minor-improvements

Conversation

@broisnees

Copy link
Copy Markdown
Collaborator

Rolls up this batch of UX/perf fixes and features into one minor release. Supersedes the individual draft PRs #20, #21, #22, #23, #34 (same changes, combined here).

Performance

Data table

SQL editor

Split view

Extensions


Closes #24, #25, #26, #27, #28, #29, #30, #31, #32, #33, #35.

npm run build passes; all changes were exercised live in a running tauri dev session.

broisnees added 7 commits July 5, 2026 15:16
- Promote the sidebar scroll container to a compositing layer
  ([will-change:scroll-position]) so WebKit runs it at the display's
  native rate (120Hz on ProMotion) instead of the 60Hz timer path,
  matching the technique already used for the canvas table.
- Update the virtual-window state synchronously on scroll instead of
  deferring the scrollTop read into a rAF, which left the rendered
  window one frame behind the scrollbar thumb during a drag.
- Correct ROW_H (28 -> 27) to match the real row stride (25px row +
  2px gap) so virtual spacers don't drift.
Review changes dialog (DataTable):
- Prettify the generated SQL with sql-formatter and render it in an
  editable Monaco editor (lazy-loaded) instead of a cramped read-only
  block. Editing the SQL switches Apply to run it verbatim via
  executeSqlMulti + refetch (onexecutesql), while the unedited path
  keeps the safe structured per-cell writes.
- Include a pending inline new-row INSERT in the combined review +
  execution, so an added row is no longer silently dropped when
  applying edits/deletes together.

Split panes (PaneSnapshot):
- A defocused SQL/Query Editor pane now renders its query text and last
  results (read-only) instead of the generic 'click to focus'
  placeholder.
Replace the native <select> elements in the cell editor (enum) and the
new-row draft (enum + boolean) with the app's bits-ui Select. The native
OS popup was unstyled (white box clashing with the dark theme) and broke
on Linux/WebKitGTK. The enum cell editor auto-opens on edit and commits
on pick; Escape/click-away cancels.
…ry timeout

- Error strip: move the label + 'Fix with AI' action to a header row above
  a full-width message, and wrap the message with overflow-wrap:anywhere
  instead of break-all (which chopped ordinary words mid-character).
- Query history panel: the History/Saved/Charts tabs overflowed the 224px
  panel and spilled over the editor toolbar. Widen the panel to w-64,
  tighten tab padding/gap, and clip the tab group as a safety.
- Raise the ad-hoc SQL statement timeout 30s -> 60s so heavier scans
  (e.g. tables with large TOASTed JSON columns like resume_parsing) finish.
- Add an actionable hint under statement-timeout errors.
The dialog is opened programmatically from Monaco (Cmd+S); bits-ui's
default escape-to-close didn't fire reliably through that focus path in
the WebKit/Tauri webview. Handle Escape explicitly on the name input.
The row expand viewer could blow up memory on rows with big JSON (e.g.
resume_parsing's Buffer 'data' byte arrays / large jsonb):

- Raw view: the preview kept every array item / object key (only strings
  were truncated), so displayText ballooned, then got stringified and
  highlighted. Now cap arrays/objects to 200 children in the preview and
  skip per-token highlighting entirely for any truncated/large value
  (plain escaped text). Copy JSON still copies the full value.
- Tree view: stop materializing a tuple for every element of a huge
  array just to show its count — use .length for the summary and build
  only the currently-visible children.
- Extensions page: enabled state now reads at a glance — sidebar shows a
  stateful 'N on' badge and an active accent bar, and the detail header
  card / icon pick up a subtle emerald accent when the extension is on.
- Add Cmd/Ctrl+Shift+X to open the Extensions tab; documented in the
  keyboard shortcuts dialog.
@broisnees broisnees added the release:minor Bump minor version (0.x.0) label Jul 5, 2026
@changeset-bot

changeset-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 5c9ec6a

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

@broisnees

Copy link
Copy Markdown
Collaborator Author

@copilot summarize the changelog

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.

Sidebar table list scrolls laggily / stutters when dragging

1 participant