- 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
- 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
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 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.
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.
Add queryTimeoutSecs to editor settings with UI control in the settings
dialog. 0 means no timeout. Applied to all query execution paths including
sidebar table data loading and EXPLAIN queries.
Closes#441.
Users can now create, edit, and delete SQL snippet templates from the settings dialog (new "Snippets" tab). Each template has a label, trigger prefix, and SQL body. Built-in defaults are modifiable and can be restored. Templates persist across sessions via the existing settings storage.
CSS variable changes alone don't trigger CodeMirror's measure cycle, so
gutter element heights would diverge from content line heights. The fix
reconfigures the font theme compartment (throttled to once per rAF) to
force a proper state transition → measure → syncGutters path.
Also adds missing fontFamily on .cm-gutters and i18n for "Follow app theme".
- Add `ai_list_models` Tauri command and core support for fetching available models from OpenAI-compatible, Claude, and Ollama providers
- Replace manual model ID input with SearchableSelect in EditorSettingsDialog, including refresh button and loading state
- Add i18n translations for model list UI (en, es, zh-CN)
- Add tests for settings dialog layout and web driver management
Thinking models like DeepSeek V4 Flash can exceed the 120s stream
timeout during long reasoning, causing truncated output and missing
answers. Increase stream timeout to 600s when thinking is enabled,
raise max_tokens floor to 8192, and bump reasoning display max-height.
Closes#326