- Fix value editor not scrollable when content exceeds container
(overflow-hidden -> overflow-auto)
- Extract vscodeSelectionLayer from QueryEditor into shared module
and apply to value editor for consistent selection highlighting
- frontend: use e.message instead of String(e) in toErrorResult to avoid
"Error: " prefix for HTTP-mode errors, matching connectionErrorMessage
- frontend: apply same fix to MongoDocBrowser error display
- backend(postgres): use pg_error_to_string across all query execution
paths (execute, execute_batch, copy_out, copy_in) to extract DbError
details instead of generic transport-layer errors
Other databases (MySQL, SQL Server, SQLite, DuckDB) already include
server-level error details in their native Error::to_string().
- Hide default cm-selectionBackground in favor of custom
cm-vscodeSelection rendering layer
- Adjust cursor height and vertical alignment
- Style custom VSCode selection overlay with opacity and color
- Move executeSql and saveSql keybindings to Prec.high to override
defaultKeymap's Mod-Enter (insertBlankLine) and ensure Cmd+Enter
executes the current query on macOS
- Override Enter key with insertNewlineKeepIndent instead of
insertNewlineAndIndent to prevent unwanted continuedIndent from
SQL language mode when breaking lines
DuckDB opens database files with exclusive locks on Windows. Previously
connections were only released via Drop, which may not release the file
handle synchronously, causing "file already in use" errors when
reconnecting or testing connections in quick succession.
Add find and replace shortcut definitions to the shortcut registry with
Mod+F and Mod+R defaults. Route Mod-R through App → ContentArea to
dispatch to either the query editor replace panel or data grid refresh
based on focus context. Add isModRShortcut helper and tests.
Move search/replace panel from QueryEditor into EditorSearchPanel.vue,
and use it in both QueryEditor and cell detail editor via programmatic
mounting. Removes dependency on CodeMirror's built-in search panel in
the cell detail editor, giving it the same custom search UI.
Add @interact-outside.prevent to schema diff and data compare dialogs
to avoid accidental dismissal. Move compare action buttons to footer,
matching the SQL file execution dialog layout.
Add WebDAV-based settings sync for desktop app, including connection
configuration, editor settings, and optional encrypted secrets sync.
Also persist WebDAV remember-password preference across sessions.
Replace SELECT * FROM (subquery) LIMIT/OFFSET pattern with direct
LIMIT/OFFSET appending for all database types, matching the existing
MySQL approach. This prevents "Duplicate column name" errors when
paginating JOIN queries that produce same-named columns.
Replace hardcoded AND-only filter condition joining with a grouped WHERE
builder that respects per-rule AND/OR conjunctions. The filter builder UI
now shows toggle buttons between rules to switch the logical operator.
Previously the sidebar tree refresh was skipped entirely in EDIT mode because
the check was gated on activeTab.mode === 'data', which is never true when
the structure editor is open. Now we pass a commentChanged flag through the
event chain and only refresh the tree when the comment was modified.
Typing "WH" now ranks WHERE above WHEN since WHERE is far more
commonly used. High-frequency keywords (SELECT, FROM, WHERE, JOIN,
etc.) get a +100 boost so usage frequency outweighs length-based
tie-breaking.
Fixes#459
Add useSqlHighlighter composable and integrate Shiki highlighting into
DangerConfirmDialog, QueryHistory, DataGrid (replacing regex-based
highlighting), SqlFileExecutionDialog, SchemaDiffDialog, TreeItem,
ObjectBrowser, and FieldLineageDialog. Also fix danger dialog overflow
by adding overflow-hidden to DialogContent and wrap/scroll support.