Commit Graph
114 Commits
Author SHA1 Message Date
二丫讲梵 d642d01eac feat(mcp): centralize connection access policies 2026-07-20 22:47:40 +08:00
zipg 1d1959c579 fix(sql): default execution to current statement 2026-07-20 17:32:27 +08:00
二丫讲梵 cdbe0079e7 feat(settings): configure table open page size 2026-07-20 14:05:40 +08:00
t8y2 4cc14f5f72 feat(updater): remove AtomGit download source 2026-07-18 12:23:16 +08:00
二丫讲梵 fec458dc2d feat(ai): allow empty API keys for self-hosted providers 2026-07-17 23:56:33 +08:00
Abeautifulsnow c417e54698 fix(ai): preserve last-used model during app session 2026-07-17 18:14:49 +08:00
二丫讲梵 1e1d424164 feat(settings): persist grid display preferences 2026-07-17 15:29:57 +08:00
Guoyu Su d3947d246c feat(ai): add Claude Code CLI provider 2026-07-17 01:17:06 +08:00
gggaiitx 916aad66bf feat(tabs): add multi-row tab layout option 2026-07-17 00:11:47 +08:00
CSXFanMeng f08a0b7f7f feat(backup): add scheduled database backups 2026-07-16 18:49:15 +08:00
lexmin0412 dd3a2e30a4 feat(ai): support multiple configurations and models 2026-07-16 17:59:40 +08:00
zipg 0a1efdcb85 feat(settings): add global date and time formats 2026-07-16 14:49:28 +08:00
gggaiitx e9e59113a3 fix(query): continue batch after statement errors 2026-07-14 12:51:24 +08:00
zipg 16724074c0 feat(grid): improve cell detail panel 2026-07-13 17:16:38 +08:00
Abeautifulsnow 9e1b0c478e feat(editor): prefill new queries from focused tables 2026-07-13 16:15:09 +08:00
Freedom 86dad5db9f feat(editor): show column hints for INSERT values 2026-07-13 00:39:36 +08:00
miracle 16e879e40e perf(query): optimize result loading and connection reuse 2026-07-12 11:18:52 +08:00
miracle 1a309b6b63 feat(editor): configure SQL variable syntax 2026-07-11 20:45:07 +08:00
lexmin0412 dd8f4a0f87 fix(ui): deactivate settings when activating tabs 2026-07-11 00:05:05 +08:00
gggaiitx ae4bbe1564 feat(grid): adjust column widths by density 2026-07-10 19:39:28 +08:00
t8y2 3b1a9cb98b feat(grid): allow table font size down to 8 2026-07-10 14:39:21 +08:00
t8y2 1c18a80092 feat(grid): allow table font size down to 10 2026-07-10 14:14:49 +08:00
Abeautifulsnowanddbx-i18n-bot 2c2d9d7fef feat(objects): add checkbox multi-select and grid view for object browser
* feat(objects): add checkbox column toggle for object browser

- Add objectBrowserShowCheckbox setting (default: false) to EditorSettings
- Checkbox column hidden by default; auto-shows when any tables are selected
- Toolbar button toggles multi-select mode (active state highlighted in primary color)
- Clearing the toggle also clears all selections
- Add i18n key objects.toggleCheckbox in en/zh-CN

Closes #2748 (part 2)

* feat(objects): add grid view mode for object browser

- Add objectBrowserViewMode setting (list | grid, default: list) to EditorSettings
- Toolbar segmented control toggles between list and grid views, persisted across sessions
- Grid view renders cards (icon + name + type + row count) in a responsive auto-fill layout
- Reuses existing sort, search, filter, multi-select and context menu
- Partition children not expandable in grid mode (minimal version)
- Add i18n keys objects.viewList/objects.viewGrid across all locales
- Backfill objects.toggleCheckbox in es/it/ja/pt-BR/zh-TW (missed in prior commit)

Refs #2748

* fix(objects): redesign grid view cards for visual polish

- Center-align content (icon + name + metadata) for a proper tile look
- Enlarge type icons (h-7) so color coding is visible at a glance
- Merge type label and row count on one line with separator
- Reduce internal spacing (gap-1.5) and tighten padding
- Replace background hover with border glow + shadow for cleaner feedback
- Narrow min card width (150px) for denser grid, add align-content:start
- Softer rounded-lg corners

Refs #2748

* fix(objects): polish grid view card visual details

- Add colored circle background behind icons (type-matched opacity-10)
- Increase name font from text-xs to text-sm for better legibility
- Separate row count into a primary-tinted badge (only shown when > 0)
- Keep type label clean without mixing row count inline

Refs #2748

* fix(objects): refine grid card min-width, icon shadow, and type label size

* @
feat(object-browser): align tile/grid card metadata with list view columns

Add the metadata categories present in the list view but missing from
the tile/grid card view (objectBrowserViewMode === "grid"):
- Size pill (totalBytes) next to the existing rows pill in the stats row
- Timestamps row showing created_at · updated_at (per-row conditional)
- Comment row (truncated, per-row conditional, with hover tooltip)

Each card now shows: icon, name, type label, rows pill, size pill,
timestamps (when present), and comment (when present) — matching the
same metadata categories the list view displays across its 8 columns.

Also fix a pre-existing bug in the list view where the totalBytes
column tooltip (:title) used formatObjectBrowserCount instead of
formatObjectBrowserBytes, showing a count-formatted number instead
of a byte-formatted size string.
@

* @
feat(object-browser): add sort selector in toolbar for grid/list views

The list view has column header click-to-sort but the grid/tile view
had no way to change sort order. Add a compact sort selector in the
toolbar that works identically in both views:

- Native <select> dropdown with all 7 sort keys (name, type, rows,
  size, created, updated, comment) using existing column i18n labels
- ArrowUp/ArrowDown direction toggle button with localized tooltip
- Positioned between schema selector and view toggle in the toolbar
- Shares the existing sortKey/sortDirection/toggleSort logic — list
  view column headers continue to work as before
- Accessible: aria-label on select, title on direction button

i18n: added sortAsc/sortDesc/sortBy to en.ts and zh-CN.ts
@

* @
fix(object-browser): make sort key options reactive to available data

sortKeyOptions was a static array that always included created_at and
updated_at even when no row had data for those fields. Sorting by an
empty field is a no-op that silently confuses users.

Convert to a computed that mirrors the list view column visibility logic
(hasCreatedAt / hasUpdatedAt): the two time-based sort options only
appear when at least one loaded row has that field populated.

Follows design decision: sort selector remains visible in both list and
grid views (plan B), acting as a shared sort state indicator.
@

* @
fix(object-browser): reset sortKey when selected option disappears from options

When sortKeyOptions loses created_at or updated_at (e.g. after a schema
switch clears all rows), sortKey could remain set to a key no longer in
the dropdown, causing the <select> to show a blank selection.

Add a watch on sortKeyOptions that resets sortKey to "name" and
sortDirection to "asc" whenever the current key is no longer present.
@

* chore(i18n): autofill new translations

* perf(object-browser): virtualize tile/grid view with RecycleScroller

Replaces the flat v-for over filteredRows with a row-chunked
RecycleScroller, matching the list view. Previously, switching to tile
mode on a schema with thousands of tables mounted every card and its
CustomContextMenu at once, stalling the UI for several seconds.

Changes:
- gridRows computed: chunks filteredRows into rows of gridColumns cards
- ResizeObserver on the grid container drives gridColumns; initial read
  uses getComputedStyle to match contentRect.width and avoid a 1-frame
  column jump on mount
- objectGridRowHeight computed: item-size adapts to whether the dataset
  has timestamp/comment rows, minimising wasted row space
- watch(gridContainerRef) re-attaches the observer across list<->grid
  toggles; onBeforeUnmount cleans up
- scrollObjectsToTop() resets scroll position on sort, search,
  object-type filter and view-mode changes
- CSS: new .object-browser-grid-wrapper / -scroller / -row classes with
  will-change / contain parity with the list scroller

---------

Co-authored-by: dbx-i18n-bot <github-actions[bot]@users.noreply.github.com>
2026-07-09 11:59:25 +08:00
gggaiitx 2f134585ea feat(editor): add auto close brackets setting 2026-07-09 09:53:01 +08:00
t8y2 3d935f7eb6 feat(editor): 默认字体改用 Fira Code 优先回退链 2026-07-07 18:53:19 +08:00
LRcodingandzero f41c7dd6a0 fix(toolbar): sync SQL file tree visibility setting
Co-authored-by: zero <zero@zeroMacmini.local>
2026-07-07 13:18:42 +08:00
t8y2 65af804099 feat(editor): allow disabling SQL snippets 2026-07-07 12:36:51 +08:00
二丫讲梵 18e5df6f5e feat(query-editor): enhance current statement framing 2026-07-06 23:09:21 +08:00
二丫讲梵 6d0a59a913 feat(editor): SQL editor execution button config toggle & optimization
- 在 SQL 编辑器的左侧添加每条语句的执行按钮
- 支持通过快捷键和右键菜单执行语句
- 增加多语言支持的相关文本描述
2026-07-06 18:01:31 +08:00
二丫讲梵 35d5e90378 feat(settings): improve sidebar search
- 新增设置选项以启用/禁用数据库内的表搜索
- 更新相关组件以支持表搜索功能
- 添加多语言支持的描述信息
2026-07-06 17:24:56 +08:00
miracle 4afc3297e1 feat(duckdb): add worker concurrency setting 2026-07-06 00:13:11 +08:00
t8y2 6b13564180 fix(desktop): persist UI state asynchronously 2026-07-05 02:22:13 +08:00
zipgandstaff 5c35755219 Feature:新增多套应用配色主题 (#2559)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-05 00:34:47 +08:00
miracle 454457f191 fix(duckdb): add worker process isolation 2026-07-04 23:43:22 +08:00
t8y2 7e7c4944e9 refactor(desktop): organize lib modules by domain 2026-07-04 13:53:52 +08:00
t8y2 d8047a77b4 feat(grid): add configurable table search mode 2026-07-04 12:02:55 +08:00
t8y2 47238b689c feat(editor): add vim mode 2026-07-03 15:38:07 +08:00
t8y2 6f2e4774f4 feat(updates): add AtomGit update download source 2026-07-03 11:01:27 +08:00
t8y2 d249bd5ac8 feat(settings): add interface font selection 2026-07-02 19:55:43 +08:00
zipgandstaff 4efff9a190 fix(editor): prompt before closing unsaved SQL tabs
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-02 16:43:55 +08:00
Abeautifulsnow a0754206d3 feat(ai-config): persist AI settings per provider (#2412)
## 背景说明
AI 设置原本只有一个配置槽,切换模型厂商时会覆盖之前填写的 endpoint、API Key、model 等信息。本次改动让每个模型厂商各自保存一份配置,并在设置页和对话窗口提供已配置状态与快速切换能力。

## 修改内容
- 新增 ai_provider_configs 存储表,用于按 provider 保存独立 AI 配置
- 新增 Tauri/Web API:保存和加载 provider 级 AI 配置
- 设置页 provider 下拉展示“当前/已配置”状态
- 设置页切换 provider 前会先保存当前表单编辑内容,避免未保存输入丢失
- 对话窗口模型选择器支持查看并切换已配置过的其他 provider
- provider 配置保存时强制 config.provider 与 provider key 一致,避免错位配置污染
- 所有语言补齐新增 i18n 文案

## 修复的问题
- 切换模型厂商时原厂商配置会丢失
- 设置页切换 provider 时本地表单编辑态可能未保存
- provider key 与 config.provider 不一致时可能激活错误厂商
- 对话窗口模型选择器只能看到当前 provider 的模型,不能看到其他已配置厂商

## 测试
- npx tsc --noEmit
- cargo check -p dbx-core
- cargo check -p dbx-web
- cargo check --manifest-path src-tauri/Cargo.toml
2026-07-02 14:24:57 +08:00
47dc35ccb2 feat(settings): 启动时标签页恢复策略三选项 (all/pinned/none) (#2395)
* feat(settings): 添加启动标签页恢复策略

* i18n: 补齐启动标签页恢复策略 5 个 locale 译文

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-02 12:23:24 +08:00
zipgandstaff c4de3738fc Improve: 记住单元格详情 JSON 格式化状态 (#2252)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 22:38:45 +08:00
zipgandstaff c38bc05417 Fix:修复 SQL 子查询语义诊断误报 (#2184)
* Fix:修复 SQL 子查询语义诊断误报

* Improve:添加 SQL 语义诊断开关

* Improve:优化 SQL 语义诊断开关说明

* Fix:收紧 SQL 语义诊断飘红范围

* Improve:调整 SQL 语义诊断默认策略

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-30 20:15:59 +08:00
funnytime 3e7cf30ce5 feat(grid): add data grid quick entry 2026-06-30 09:14:44 +08:00
zipg a458ebd08f feat(table): add table font size control (#2095) 2026-06-30 01:57:14 +08:00
huangyemin 4ad6723512 feat(ai): support custom Anthropic messages API 2026-06-27 10:02:13 +08:00
eryajf 76e2d33cd3 feat(update): add configurable update download source 2026-06-26 22:25:42 +08:00
dalew d815a16b86 feat(redis): move scan page size to connections 2026-06-26 11:13:34 +08:00
Oleksandr Liakhevych 034cce47e0 fix(ai): Codex CLI provider reliability fixes for DBX Desktop
* fix(ai): resolve Codex CLI from shell PATH on macOS

* fix(ai): hide Codex CLI subprocess windows on Windows

* feat(ai): allow to set environment variable for Codex CLI

* fix(ai): parse Codex MCP tool events

* fix(mcp): honor Postgres TLS settings in direct queries
2026-06-25 22:31:14 +08:00