Commit Graph

1301 Commits

Author SHA1 Message Date
t8y2 f7f5758c85 feat(desktop): add global UI zoom settings and shortcuts 2026-05-28 17:43:06 +08:00
t8y2 d35aeaa08c fix: continue transfer after table failure 2026-05-28 16:11:29 +08:00
t8y2 1c03917609 fix: history context menu view details unresponsive and delete missing confirmation
- Fix "View Details" action: selectedEntry = entry → selectedEntry.value = entry
- Replace window.confirm() with Dialog-based confirmation for delete and clear
- Add history.clear i18n key to zh-CN and en locales
2026-05-28 14:33:50 +08:00
t8y2 967a12cc42 fix: remove fixed width from ask/agent mode dropdown to allow adaptive sizing 2026-05-28 14:33:24 +08:00
t8y2 56c937f844 refactor: migrate all context menus to CustomContextMenu
Replace reka-ui ContextMenu usage in QueryHistory, DataGrid,
AppTabBar, ObjectBrowser, and TreeItem with the lightweight
CustomContextMenu component. This removes the last reka-ui
context menu dependencies and eliminates the performance
overhead of multiple cached ContextMenu instances.
2026-05-28 13:24:03 +08:00
t8y2 6491442192 feat: add submenu support to CustomContextMenu
Add children support for nested menu items with hover-triggered
submenus, auto-flip positioning near viewport edges, and smart
close timing to prevent flicker.
2026-05-28 13:23:54 +08:00
t8y2 cdadbc19f1 fix: replace reka-ui context menu with lightweight custom component to fix editor lag
The reka-ui ContextMenu component caused significant performance
degradation when multiple editor tabs were cached via KeepAlive,
due to its heavy state machine, provide/inject chain, and document-level
event listeners accumulating across cached instances.

Replaced with a minimal CustomContextMenu that renders via Teleport
without any DOM wrapping or reka-ui dependency, eliminating the lag
while preserving the same visual appearance and functionality.
2026-05-28 12:50:57 +08:00
t8y2 ed10edb5f7 fix: prevent connection dialog from closing on outside click 2026-05-28 11:08:26 +08:00
t8y2 b3ddf9716f feat(grid): add search bar to table info panel for filtering columns, indexes, foreign keys, triggers, and DDL
Closes #493.
2026-05-28 11:02:59 +08:00
t8y2 58c92a038b fix(docs): update database count from 35+ to 40+ 2026-05-28 02:13:21 +08:00
t8y2 f40745fbd1 chore: bump version to 0.5.23 2026-05-28 01:32:54 +08:00
t8y2 0ffc0dbca8 fix(ci): add missing redis cluster test config field 2026-05-28 01:20:24 +08:00
t8y2 c952c65483 feat: upgrade data compare sync planning 2026-05-28 01:05:15 +08:00
t8y2 4b9f770534 feat(docs): add comprehensive SEO optimization for static docs site
Add per-page metadata, Open Graph / Twitter tags, canonical URLs,
hreflang, sitemap generation, robots.txt, and JSON-LD structured data
for the bilingual (en/cn) documentation site.
2026-05-28 00:31:34 +08:00
t8y2 bd78436ab1 feat: add query editor context menu 2026-05-28 00:29:02 +08:00
t8y2 3ba3a644fe Format table structure SQL helpers 2026-05-28 00:16:42 +08:00
t8y2 753e40d403 Fix CI TypeScript check and rust disk pressure 2026-05-28 00:15:19 +08:00
t8y2 797c0d8d21 Add Redis cluster support and improve key loading 2026-05-28 00:08:59 +08:00
t8y2 66ce9a368e feat(grid): always show sort button in column header regardless of compact mode
Previously when compactColumnHeaderActions was enabled, the sort button was
hidden inside a dropdown menu, requiring two clicks to sort. Now the sort
button is always visible, while formatter and local filter remain in the
dropdown when compact mode is on.
2026-05-28 00:00:03 +08:00
t8y2 daf952d8a1 fix(windows): refresh white app icons 2026-05-27 23:45:52 +08:00
t8y2 ac4313afee fix(sqlserver): avoid false unknown column diagnostics 2026-05-27 23:07:47 +08:00
t8y2 9b702b86bf fix(object-browser): respect sidebarActivation double-click mode using event.detail 2026-05-27 22:45:21 +08:00
t8y2 634e8bf5ac feat(sqlserver): enable table structure editing for existing columns and comments
- Enable renameColumn, alterExistingColumn, alterType, alterNullability,
  alterDefault, comment, and indexComment capabilities for SQL Server
- Implement build_sqlserver_existing_column_sql() with sp_rename for column
  rename, ALTER TABLE ALTER COLUMN for type/nullability changes, and dynamic
  SQL for default constraint management
- Add sp_addextendedproperty/sp_dropextendedproperty DDL generation for table,
  column, and index comments
- Fetch table and column comments from sys.extended_properties via OUTER APPLY
  in list_tables, list_objects, and get_columns SQL queries
- Fix table comment placeholder text (was showing column comment placeholder)
2026-05-27 22:28:31 +08:00
t8y2 50a7fd8968 fix(postgres): read custom enum values via binary protocol fallback
tokio_postgres's FromSql<String> only accepts built-in text-like OIDs and
rejects custom enum OIDs, causing all enum column values to display as
NULL. Add a PgAnyString adapter that accepts any type and reads raw bytes
as UTF-8, used as a last-resort fallback in pg_value_to_json and
pg_array_to_json_value.

Also bump shadcn-vue (2.6.2→2.7.3) and reka-ui (2.9.6→2.9.8).

Closes #485
2026-05-27 19:11:13 +08:00
t8y2 c9e390e0ce fix(ui): show red dot indicator on driver management tabs with pending updates
Add a small red dot badge on the "内置驱动" and "JDBC 驱动" tabs when
they have available updates, so users can immediately see which tab
needs attention without opening the dialog first.
2026-05-27 18:54:15 +08:00
t8y2 98b1fbb204 fix(transfer): add schema selectors for schema-aware databases like PostgreSQL
Previously the transfer dialog auto-detected schema (always picking "public"
or the first one), which prevented users from selecting tables in other
schemas. Now schema-aware databases show a schema dropdown for both source
and target.

Closes #485
2026-05-27 18:44:43 +08:00
t8y2 c362fedabe fix: hide terminal window when checking system proxy on Windows
Use CREATE_NO_WINDOW flag to prevent reg.exe from flashing console windows
during update checks.

Closes #483
2026-05-27 18:27:23 +08:00
t8y2 6d35dcfda8 fix: fix cargo fmt and update tests for completion/snippet changes
- Run cargo fmt on duckdb_driver.rs
- Update test expectations for snippet→function type changes
- Fix snippet icon color test (emerald→violet)
- Fix error result message format test
- Fix keyword suggestion test to handle snippet boost priority
2026-05-27 18:26:22 +08:00
t8y2 4207a891d1 fix: properly disconnect agent-based database connections
PoolKind::Agent had a no-op disconnect handler, which meant closing
connections for agent-driven databases (KingbaseES, Oracle, Dameng, etc.)
never actually sent a disconnect command to the Java agent process.
The JDBC connection was only released when the process was eventually
killed via Drop, which could leave stale sessions alive on reconnect.
2026-05-27 18:00:50 +08:00
t8y2 76409d3313 fix(editor): preserve snippet settings edits and polish completion UI 2026-05-27 17:46:17 +08:00
t8y2 915728ebec fix(editor): refresh SQL snippet completion after settings changes 2026-05-27 17:46:16 +08:00
t8y2 aaa6cb177c chore: bilingual issue template names with emoji in title brackets
- Bilingual name/description for template chooser (English / 中文)
- Emoji inside title brackets: [🐞 Bug], [💡 Feature], etc.
- Field labels and descriptions remain Chinese-only
2026-05-27 16:44:27 +08:00
t8y2 f0be94096c fix: exclude disconnected connections from sidebar search results 2026-05-27 16:34:49 +08:00
t8y2 94898ed84a fix: prevent refresh from auto-reconnecting closed connections 2026-05-27 16:30:44 +08:00
t8y2 07c1948ff8 chore: simplify issue templates to reduce required fields 2026-05-27 16:25:48 +08:00
t8y2 49dc85267a feat: add setting to hide table comments in sidebar tree 2026-05-27 16:23:58 +08:00
t8y2 68c8a5cc7b fix: fix value editor scrolling and add selection highlight
- 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
2026-05-27 16:05:30 +08:00
t8y2 84e2093b82 fix(hana): allow empty database context 2026-05-27 15:53:05 +08:00
t8y2 dafed47b07 fix: improve database error message extraction for queries
- 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().
2026-05-27 15:40:28 +08:00
t8y2 7717eae5ff style(editor): refine selection layer and cursor appearance
- 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
2026-05-27 14:59:41 +08:00
t8y2 5c47885a88 fix(editor): fix Cmd+Enter not executing SQL and Enter adding unwanted indent
- 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
2026-05-27 14:59:07 +08:00
t8y2 e9a2c08a46 feat(db): support TLS client certificates 2026-05-27 13:54:32 +08:00
t8y2 a296bd6c3c fix(duckdb): explicitly close connections to release file locks on Windows
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.
2026-05-27 13:53:14 +08:00
vvrf bcfad319a6
fix: allow mysql timestamp default null ddl 2026-05-27 13:31:22 +08:00
t8y2 745f37fa6d fix(mysql): avoid garbled binary value previews 2026-05-27 12:56:53 +08:00
t8y2 556edaf193 fix(mysql): support sha256_password authentication 2026-05-27 12:56:35 +08:00
t8y2 12abe9d0e0 feat: add configurable find/replace shortcuts with Mod-R routing
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.
2026-05-27 12:20:20 +08:00
t8y2 20fcea82b4 feat: extract EditorSearchPanel into reusable component
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.
2026-05-27 12:14:38 +08:00
t8y2 22e8fece1c feat: add query editor replace shortcut 2026-05-27 10:50:54 +08:00
t8y2 455f04a874 fix: support DuckDB extensions in macOS builds 2026-05-27 10:43:20 +08:00