Repository navigation
fix: blob-cell freeze, per-tab crash isolation, search highlighting, JSON tree, switcher UX - #17
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… public repo on release Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lain virtualized scrolling Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ON tree (#2), switcher focus (#3) Critical fixes: - Cap per-cell payloads at 256KB in Postgres/MySQL/SQLite cell serializers (and the MCP server's pg_cell): multi-MB file buffers stored in jsonb/text/ blob froze the app end-to-end (IPC, webview parse, grid stringify, Monaco pretty-print). Oversized cells now ship as a sentinel with a 16KB preview; the grid shows a truncation marker, the JSON lightbox shows the preview under a size banner, copy/export render the truncation explicitly, and editing/filtering on truncated cells is blocked so a preview can never be written back over real data. - Contain canvas crashes to their tab: the draw loop and canvas event handlers run outside Svelte's effect tree, so exceptions bypassed the per-tab <svelte:boundary> and froze the grid with no error UI. First error is now captured and rethrown from an effect, landing in the existing "Reload this view" card while the rest of the app stays alive. Features: - Search-match highlighting in the data grid: toolbar search now paints where each match falls inside visible cell text (case-insensitive, matches ILIKE). - JsonTree.svelte: collapsible JSON tree in expanded rows with per-node copy and open-in-Monaco-lightbox; Tree/Raw toggle persisted; children paginate at 200 so huge arrays can't blow up the DOM. Fixes & polish: - DB switcher: filter input always rendered and autofocused on open via onOpenAutoFocus (bits-ui no longer steals focus); ⌘D / ⇧⌘C keybindings and arrows/Tab/Enter list navigation from the input. - Trial licensing fails open: only a definitive TrialExpired locks Pro; transient license-check errors keep the last known status. - SQL console: cached sort keys — object cells no longer re-stringify on every comparison. - AI chat: conversation column matches composer width; roomier message rhythm. - Sidebar: "View data structure" → "View structure". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Fill the [1.1.0] section with the real release notes (pin tabs, Graphite, license page, SQL result sorting, pinned-column fix, reconnect perf, settings redesign, public-repo release pipeline) — it shipped with only the PR title because the changeset was still on an unmerged branch. - Retire .changeset/quality-pass-1-1.md (content now lives in [1.1.0]). - New .changeset/stability-json-search-1-2.md for the next release: blob freeze fix (#1), per-tab crash isolation, search highlighting, JSON tree (#2), db-switcher focus + shortcuts (#3), sidebar scroll hotfix, trial licensing fail-open, AI chat polish. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 01f3a38 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1 (via public repo issues: app freeze on large blob cells), implements #2 (JSON wrap/unwrap) and #3 (switcher search box focus).
Critical fixes
jsonb/text/blob columns shipped whole through IPC, then got parsed, stringified, and pretty-printed on the main thread. Cells above 256 KB are now replaced at the source (Postgres / MySQL / SQLite / MCP server) with a sentinel carrying a 16 KB preview. The grid shows a truncation marker, the JSON lightbox shows the preview under a size banner, copy/export mark the truncation, and editing/filtering on truncated cells is blocked so a preview can never be written back. Verified against a real table with 18 MB jsonb cells; values ≤ 256 KB are byte-for-byte unchanged.<svelte:boundary>and froze the grid with no error UI. Errors are now captured and rethrown from an effect — the tab shows the existing "Reload this view" card; sidebar, other tabs, and status bar stay alive.Features
Fixes & polish
Release plumbing
chore: release 1.1.0(versions correctly at 1.1.0 so auto-release bumps to 1.2.0).[1.1.0]CHANGELOG section enriched with the real notes (it shipped with only the PR title because the changeset was on an unmerged branch); that changeset retired.stability-json-search-1-2.mdwill fold into[1.2.0]on merge.Merging this PR auto-cuts v1.2.0 (version bump, changelog fold, tag, build, publish to the public repo + changelog sync).
Supersedes #16 — every commit from that PR is contained here; it can be closed.
🤖 Generated with Claude Code