Commit Graph
235 Commits
Author SHA1 Message Date
t8y2 0e189ba0cc feat(editor): add SQL semantic diagnostics 2026-05-22 14:22:58 +08:00
t8y2 6c83b10b42 fix(mongo): preserve auth database for commands 2026-05-22 12:44:16 +08:00
t8y2 c1fc1c9b70 feat(objects): show object timestamps 2026-05-22 11:37:23 +08:00
t8y2 a29b95b9fa fix(app): keep tray preference persistence stable 2026-05-22 10:39:47 +08:00
t8y2 bc41936e48 feat(app): configure background tray behavior 2026-05-22 02:24:16 +08:00
t8y2 a08d2aaab9 fix(agents): align managed JRE with Java 21 drivers 2026-05-21 22:11:00 +08:00
t8y2 528c3c3ffc fix(agent): open java sql module for timestamps 2026-05-21 18:48:20 +08:00
t8y2 b4e9e798f1 fix(connection): preserve Oracle SID fallback 2026-05-21 18:42:39 +08:00
t8y2 9622080e59 fix(connection): fallback to oracle-10g on listener errors 2026-05-21 18:23:39 +08:00
t8y2 ae50a6ec9e fix(mysql): run SHOW GRANTS via text protocol 2026-05-21 16:45:48 +08:00
t8y2 cb7682e932 fix(mysql): normalize temporal SQL literals 2026-05-21 14:14:38 +08:00
t8y2 4f379be24a fix(connection): support SAP HANA tenant routing 2026-05-21 00:32:19 +08:00
t8y2 2310201a14 fix(mysql): preserve session timezone
Keep the server session timezone for standard MySQL connections unless the connection URL explicitly provides a timezone override. This avoids TIMESTAMP shifts during SQL import while preserving user-specified timezone parameters.
2026-05-20 18:58:50 +08:00
t8y2 fe6fead2dc fix(mysql): prevent crash when DELIMITER follows non-ASCII comments (#360)
parse_delimiter_command used str slicing (line[..10]) which panics on
non-char boundaries when the buffer contains multi-byte UTF-8 characters.
Also fixed DELIMITER detection to check only the last line of the buffer
instead of the entire accumulated content.
2026-05-20 16:22:00 +08:00
Abeautifulsnow 222ebefa6a feat(ai): add model list fetching in settings (#364)
- 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
2026-05-20 16:14:56 +08:00
yavon007 13424588b9 Support DBX connection deep links (#359)
* fix(mysql): avoid metadata collation conflicts

Split MySQL column and primary key metadata lookups so MariaDB and OceanBase do not join information_schema tables with incompatible collations.

* feat(grid): add invert column visibility action

* feat(grid): improve cell detail editing

* feat(grid): add keyboard cell navigation

* feat(grid): add column name copy in header tooltip

* feat(grid): improve transpose navigation

* feat(connection): support dbx connection deep links

* docs: document connection deep links

* fix(connection): harden deep link boolean handling
2026-05-20 16:10:14 +08:00
t8y2 c53caddc3f fix(sqlserver): route transaction control statements through simple_query
BEGIN TRANSACTION / COMMIT / ROLLBACK must not go through sp_executesql
(client.execute) because SQL Server raises error 266 when @@TRANCOUNT
changes inside sp_executesql. Route them through simple_query instead.
2026-05-20 13:36:08 +08:00
t8y2 bd727c32d0 fix(sqlserver): use BEGIN TRANSACTION instead of BEGIN for explicit transactions
SQL Server interprets bare "BEGIN" as a BEGIN...END block, not a
transaction start, causing syntax error when editing table data.
2026-05-20 11:08:44 +08:00
t8y2 abafa49acc fix(agent): bound read_agent_line to prevent OOM abort on large responses
Add a 512MB maximum response size limit to read_agent_line to prevent
unbounded memory allocation that could cause the process to SIGABRT
when the agent returns an unexpectedly large response.

Ref: #345
2026-05-20 10:49:11 +08:00
t8y2 ea19a24ec6 fix(mysql): retry without ssl on TLS close 2026-05-20 10:42:20 +08:00
t8y2 65b51e6c17 fix(core): harden plugin process IO 2026-05-20 10:32:06 +08:00
t8y2 f84335e986 fix(elasticsearch): parse aggregation query results into table format (#344)
Previously, aggregation queries (date_histogram, terms, etc.) with
`size: 0` returned empty results because the empty hits array was
matched but contained no documents, ignoring the aggregations data.
2026-05-20 10:12:20 +08:00
t8y2 98e2d03f64 feat(agent): support offline driver import via ZIP bundle and local JAR
Add two offline import methods for users behind corporate firewalls:
- ZIP offline bundle: import all drivers + JRE from a single ZIP file
- Single JAR import: import individual driver JARs per database type
2026-05-20 09:44:03 +08:00
yavon007 b9bcb90ac7 fix(mysql): avoid metadata collation conflicts (#341)
Split MySQL column and primary key metadata lookups so MariaDB and OceanBase do not join information_schema tables with incompatible collations.
2026-05-20 01:22:46 +08:00
t8y2 b446816bdc fix(agent): remove SHA-256 verification for driver downloads
R2 CDN cache inconsistency caused hash mismatches when registry
updated before jar files. Remove sha256 verification entirely —
the old field in registry JSON is silently ignored by serde.
2026-05-20 00:20:01 +08:00
t8y2 e8cbe6bbf0 fix(mysql): add COLLATE to get_columns JOIN for OceanBase compatibility
OceanBase MySQL mode uses different collations for information_schema
tables, causing "Illegal mix of collations" when joining COLUMNS with
KEY_COLUMN_USAGE. Explicit COLLATE utf8mb4_general_ci resolves this.

Closes #337
2026-05-19 18:36:47 +08:00
t8y2 c822c898c7 feat(sql): support MySQL DELIMITER syntax in statement splitter
Parse DELIMITER directives (e.g., DELIMITER //, DELIMITER $$) so
stored procedures, functions, and triggers with internal semicolons
are kept as single statements. Disable PostgreSQL dollar-quoting
when a custom delimiter is active to avoid conflicts.
2026-05-19 18:29:33 +08:00
t8y2 2afcfff4e3 fix(ai): extend timeout and token budget for thinking models
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
2026-05-19 18:08:08 +08:00
t8y2 2ebd72ab6d refactor(agent): retain handshake capabilities 2026-05-19 16:07:25 +08:00
t8y2 fa2e710a7b test(agent): validate protocol contract 2026-05-19 16:05:25 +08:00
t8y2 077aaa5c06 refactor(agent): wrap remaining protocol calls 2026-05-19 15:54:57 +08:00
t8y2 a8f717b3f6 refactor(agent): wrap mongo legacy calls 2026-05-19 15:49:22 +08:00
t8y2 6896b2f879 refactor(agent): wrap schema and query calls 2026-05-19 15:44:23 +08:00
t8y2 5ce6a08f05 refactor(agent): route core calls through protocol methods 2026-05-19 15:38:03 +08:00
t8y2 db10d92d13 fix(duckdb): reuse existing pool for connection test 2026-05-19 15:33:16 +08:00
t8y2 7c1a0c8076 refactor(agent): define protocol capabilities 2026-05-19 15:31:40 +08:00
t8y2 5df7fbf062 feat(agent): add compatible driver handshake 2026-05-19 15:17:21 +08:00
t8y2 47f87e0361 fix(agent): verify downloaded driver artifacts 2026-05-19 14:42:19 +08:00
t8y2 db5da1e519 fix(duckdb): normalize temporal display 2026-05-19 14:12:14 +08:00
t8y2 69ee7f2d8b fix(structure): initialize dialogs and edit clickhouse columns 2026-05-19 13:31:42 +08:00
t8y2 329664bfb8 fix(clickhouse): resolve schema metadata database 2026-05-19 12:50:10 +08:00
t8y2 f89b3a2bee fix(mongodb): expose authentication database 2026-05-19 11:51:39 +08:00
t8y2 bae487867b feat(connection): support in-memory sqlite and duckdb 2026-05-19 11:33:17 +08:00
t8y2 261d43c1b7 fix(grid): respect page size row limits 2026-05-19 11:31:38 +08:00
t8y2 95d70eede6 fix(agent): ignore ambient proxy settings 2026-05-19 11:03:35 +08:00
t8y2 b16393f68c feat(database): add agent database profiles 2026-05-18 22:38:04 +08:00
t8y2 94eeb38d63 refactor(agent): share driver service logic 2026-05-18 22:08:10 +08:00
t8y2 8a81a01fac feat(redis): stream value search results 2026-05-18 21:55:16 +08:00
t8y2 73cb490189 feat(jdbc): show plugin update notice 2026-05-18 21:48:46 +08:00
t8y2 ea5e15612f feat(redis): search keys by value 2026-05-18 21:27:47 +08:00