709 Commits
Author SHA1 Message Date
t8y2 df574c78a5 fix(build): remove unused ODBC frameworks from macOS bundle v0.5.5 2026-05-13 17:52:26 +08:00
t8y2 e9158390c1 feat(shortcuts): add search focus shortcut 2026-05-13 17:51:20 +08:00
t8y2 42501cc8fb fix(grid): allow generated insert columns 2026-05-13 17:37:29 +08:00
t8y2 9dd184a26b fix(sqlserver): decode tinyint and datetime values 2026-05-13 17:33:30 +08:00
t8y2 692815fd45 chore: bump version to 0.5.5 2026-05-13 17:14:57 +08:00
t8y2 80f33b1460 fix(sql): add sql server completions 2026-05-13 17:11:33 +08:00
t8y2 02b257dd0f fix(history): classify and virtualize entries 2026-05-13 17:07:56 +08:00
t8y2 c28820ef48 fix: make result tabs scrollable when many queries executed (closes #245) 2026-05-13 16:45:06 +08:00
t8y2 f3c5314636 fix: preload schema options when selector becomes visible (closes #244)
Schema dropdown showed an empty horizontal line because data was loaded
lazily on dropdown open, leaving the Reka UI Select with zero items in
popper mode. Eagerly preload via watchEffect when the schema selector
becomes visible so data is ready before the user opens the dropdown.
2026-05-13 16:43:05 +08:00
t8y2 e513c260b5 feat: driver store UX improvements and multi-row range copy
- ESC key closes driver store before closing tabs
- Auto-scroll to driver store tab when opened
- Deactivate query tab highlight when driver store is open
- Support copying range-selected rows as JSON
- Add multiRowCount/isMultiRow computed properties for DataGrid
2026-05-13 16:34:56 +08:00
t8y2 adb320192a perf: add JVM flags for faster agent cold start
Use -XX:TieredStopAtLevel=1 and -XX:+UseSerialGC to skip C2
compilation and reduce GC init overhead on agent process startup.
2026-05-13 16:33:39 +08:00
t8y2 5e30e97be4 fix: driver store scroll and replace installed text with check icon 2026-05-13 16:25:17 +08:00
t8y2 b82c7f9274 feat: multi-row selection with batch clone, delete, and copy support 2026-05-13 16:25:02 +08:00
t8y2 d50da7f1cd feat: Oracle version selector in connection form, JRE install button
- Add Oracle 11g+/10g version dropdown in connection config (driver_profile routing)
- Show JRE version tags on all drivers in driver management
- Add install button for uninstalled JREs
- Fix iconTypeMap for oracle-10g
2026-05-13 16:20:03 +08:00
t8y2 809448a161 feat: multi-JRE support, Oracle 10g driver profile, and JRE uninstall
- Support multiple JRE versions per agent driver (jre-8/, jre-17/)
- Auto-migrate legacy jre/ directory to jre-17/
- Detect macOS Adoptium JRE 8 Contents/Home/ layout
- Route Oracle 10g connections to oracle-10g agent via driver_profile
- Add Oracle 10g option in connection dialog
- Add JRE uninstall with dependency check
- Show per-JRE status and controls in driver management UI
2026-05-13 16:08:00 +08:00
t8y2 b4d1f4b04e perf: eliminate theme switch lag by suppressing CSS transitions
Disable all CSS transitions/animations during theme toggle so color
changes apply instantly instead of animating over 150ms. Also cache
Tauri window module import and set color-scheme for native UI elements.
2026-05-13 16:04:35 +08:00
t8y2 70becfd74f fix: split screenshot field from log field in issue templates
render: shell blocks image paste/drag — separate into a plain textarea
so users can attach screenshots directly.
2026-05-13 15:26:22 +08:00
t8y2 20d1fa724d fix: make AI stream cancel respond instantly via tokio::select
Replace AtomicBool polling (only checked between chunks) with
tokio::sync::Notify + tokio::select!, so the stop button takes
effect immediately even when the LLM is thinking.
2026-05-13 14:59:55 +08:00
t8y2 6be7170dfb fix: add Windows launcher for JDBC plugin (os error 193) 2026-05-13 14:27:47 +08:00
t8y2 fa0dfc9383 perf: race GitHub proxies concurrently for driver downloads and registry fetch
Replace sequential proxy fallback (up to 30s worst-case) with concurrent
racing via futures::select_ok, returning the first successful response.
Add list_installed_agents_local command for instant UI rendering with
async registry update. Fix missing useToast import in RedisValueViewer.
2026-05-13 14:18:28 +08:00
t8y2 321ebc2636 fix: support HTTPS and self-signed certs for Elasticsearch connections
ES 8.x enables HTTPS with self-signed certs by default. When SSL is
toggled on, use https:// scheme and accept invalid certificates.

Closes #234
2026-05-13 14:07:01 +08:00
t8y2 4dc3a1b3c0 feat(redis): add sheet UI components, list set API, and member detail utils
- Add shadcn Sheet UI components for member detail drawer
- Add redisListSet API for editing list items by index
- Add member detail presentation helpers (format, highlight, edit, resize)
- Add tests for redis value presentation
2026-05-13 13:54:59 +08:00
t8y2 90e8bbe757 perf(redis): paginate key scanning, relocate flush DB button
- Replace do-while loop that scanned ALL keys with single-page scan
- Add "Load More" button at bottom for incremental loading
- Move flush DB button from search bar to command line area to reduce
  accidental clicks

Closes #242
2026-05-13 13:50:48 +08:00
t8y2 48785162e3 feat: support schema-qualified table completion in SQL editor
When typing `schema.` in the SQL editor for schema-aware databases
(PostgreSQL, GaussDB, etc.), auto-complete now suggests tables from
that schema. Falls back to schema lookup when the qualifier doesn't
match any table name.

Closes #239
2026-05-13 13:09:22 +08:00
t8y2 24b39bd853 feat: add copy toast feedback for Redis, fix sheet overlay close lag
- Add "已复制" toast for all Redis copy operations (value, member, detail)
- Remove sheet overlay exit animation to fix slow overlay-click close
2026-05-13 12:54:04 +08:00
t8y2 0881d4d966 feat: add toast feedback for connection operations
Add toast notifications for delete, disconnect, duplicate, copy name,
and delete group operations in the sidebar context menu.
2026-05-13 12:35:50 +08:00
t8y2 e87876c923 feat(driver-store): badge-style version/size, refresh button, fix dameng icon
- Show version and size as rounded badges instead of plain text
- Display remote version with amber badge when update available
- Add refresh button to clear registry cache and reload
- Add invalidate_agent_registry_cache Tauri command
- Fix dameng icon mapping (dameng -> dm)
2026-05-13 12:26:56 +08:00
t8y2 02b14d15fc chore: remove unused DriverManager.vue 2026-05-13 11:42:14 +08:00
t8y2 fea3552774 feat: add Redis member detail viewer 2026-05-13 11:12:32 +08:00
t8y2 4d4c8f4224 feat: extract driver management into standalone tab page with registry cache
Move driver management (Agent + JDBC) out of the settings dialog into a
dedicated tab page accessible from the top toolbar. Agent drivers are shown
as a compact horizontal list; JDBC plugin/driver management is on a second
tab. Add 5-minute in-memory cache for the agent registry to avoid repeated
GitHub requests on install/uninstall/refresh operations.
2026-05-13 11:05:21 +08:00
t8y2 047e8fc2f1 fix: filter SQL completion tables 2026-05-13 11:01:59 +08:00
t8y2 b0a808bc14 feat: add system theme mode 2026-05-13 10:48:34 +08:00
t8y2 7ce2cf2163 feat: add 12 new agent-driven databases, migrate GaussDB to agent
Add H2, Snowflake, Trino, Hive, DB2, Informix, Neo4j, Cassandra,
BigQuery, Apache Kylin, SunDB as new agent-driven database types.
Migrate GaussDB from native rust-gaussdb to JDBC agent.

Remove rust-gaussdb dependency. Total agent-driven databases: 17.
2026-05-13 09:47:22 +08:00
t8y2 c50323cd6c feat(agent): migrate Oracle to JDBC agent, add install progress bar and toast
- Migrate Oracle from rust-oracle to JDBC agent (ojdbc11)
- Delete oracle_driver.rs (567 lines) and rust-oracle dependency
- Add streaming download progress bar for driver/JRE installation
- Add toast notifications for install/uninstall success/failure
- Add "update available" badge in driver manager
2026-05-13 09:20:06 +08:00
t8y2 b012ae32f9 feat(connection): show agent driver install hint for domestic databases 2026-05-13 08:52:10 +08:00
t8y2 4c328bd12b style(driver-manager): align UI with JDBC section style 2026-05-13 08:43:59 +08:00
t8y2 fca68e723c chore: 移除不再使用的 Android 相关依赖 2026-05-13 08:37:16 +08:00
t8y2 2d15e3acb9 refactor: merge JDBC and agent driver tabs into single '驱动' tab 2026-05-13 05:39:52 +08:00
t8y2 831883f156 perf(agent): use single execute_transaction RPC for batch commits 2026-05-13 05:34:01 +08:00
t8y2 70db1eb9a9 chore: remove obsolete DM8 ODBC driver hint from connection dialog 2026-05-13 05:28:58 +08:00
t8y2 26245514bb refactor: remove ODBC dependency entirely
DaMeng now uses JDBC agent instead of ODBC. Remove odbc-api crate,
ODBC_ENV static, unixodbc system dependency from CI, and ODBC library
bundling from macOS release builds. macOS no longer needs any brew
dependencies for development.
2026-05-13 05:27:56 +08:00
t8y2 a450405b0d perf(agent): reuse daemon process for test_connection to avoid JVM cold start
Keep a per-db-type daemon agent process alive in AgentManager. test_connection
now reuses the warm daemon instead of spawning a new JVM each time. If the
daemon dies, it auto-respawns on next call.
2026-05-13 05:08:55 +08:00
t8y2 bc687cee7f feat(agent): add reinstall JRE button in Driver Manager 2026-05-13 05:05:00 +08:00
t8y2 ff80e767d6 refactor: extract GITHUB_PROXIES constant shared by update and agent modules 2026-05-13 04:47:43 +08:00
t8y2 e85f9df1fe feat(agent): pluggable database drivers via JDBC agent subprocess
Migrate domestic database support (DaMeng, KingBase, Vastbase, GoldenDB) from
built-in ODBC/protocol drivers to standalone Java agent processes communicating
via stdin/stdout JSON-RPC 2.0. Agents are distributed as fat JARs with embedded
JDBC drivers, downloaded on-demand from GitHub Releases with proxy fallback.

- Add AgentDriverClient for subprocess lifecycle + JSON-RPC communication
- Add AgentManager for JRE/JAR install state management
- Add Tauri commands for driver install/uninstall/list
- Add DriverManager UI panel in settings dialog
- Extend DatabaseType with Kingbase, Vastbase, Goldendb variants
- Migrate Dameng from ODBC (dm_driver.rs) to JDBC agent
- Delete dm_driver.rs (343 lines)
- Add GitHub proxy fallback for downloads (update.hwdns.net, gh-proxy.org)

Agent code lives at https://github.com/t8y2/dbx-agents
2026-05-13 04:44:52 +08:00
t8y2 8ef1999ec9 fix(docs): restore root layout tags 2026-05-13 01:18:59 +08:00
t8y2 74ad4369f4 perf(ai): parallelize schema metadata loading for AI context
buildAiContext previously loaded table metadata sequentially in a
for-loop (3 API calls per table × up to 50 tables = 150 serial
round-trips). Now uses Promise.all to fetch all tables' columns,
indexes, and foreign keys concurrently, reducing total wait time
from O(n × latency) to O(latency).
2026-05-13 01:15:59 +08:00
t8y2 9ba2976d11 feat: export entire database as SQL file
Add a new "Export Database" feature accessible from the sidebar
right-click menu on database/schema nodes. Generates a .sql file
containing CREATE TABLE DDL, batched INSERT statements, and
view/procedure/function source code.

Backend (database_export.rs):
- Stream-writes SQL to file with configurable batch size
- Supports all SQL database types via existing DDL/INSERT generators
- Progress events with cancellation support
- Graceful error handling (continues on per-table failures)

Frontend (DatabaseExportDialog.vue):
- Connection/database/schema selector
- Checkboxes: structure, data, objects
- Real-time progress with current table and row count
- Cancel button

Wired up through Tauri commands, Web SSE routes, and API layer.
2026-05-13 01:08:16 +08:00
t8y2 83216b2765 feat(docs): 升级首页与更新日志 2026-05-13 01:04:58 +08:00
t8y2 965f529b77 feat(diff): selective sync, swap button, and execution progress
Schema Compare:
- Add checkbox per diff item for selective sync (with select-all)
- SQL preview now reactively updates based on checked items
- Add swap button to exchange source↔target
- Execute sync now runs statement-by-statement with progress indicator
- Show detailed error report for failed statements

Data Compare:
- Add swap button to exchange source↔target
- Execute sync now runs statement-by-statement with progress indicator
- Show error summary and per-statement failures
2026-05-13 00:15:48 +08:00