kunghim
|
7cb276cc9f
|
🐛 fix(data-grid): 兼容表头排序与字段拖入查询区
|
2026-08-07 15:25:46 +08:00 |
|
kunghim
|
f0ffef2080
|
✨ feat(query): 支持拖拽结果字段插入 SQL (#848)
|
2026-08-07 15:25:26 +08:00 |
|
mango
|
c3d3f89561
|
🐛 fix(oracle): 支持 FOR UPDATE 结果直接编辑 (#857)
Fixes #857
|
2026-08-07 13:43:59 +08:00 |
|
mango
|
94e972f993
|
🐛 fix(redis): 支持配置 ACL 用户名 (#859)
Fixes #859
|
2026-08-07 12:17:49 +08:00 |
|
Syngnat
|
5446269855
|
✨ feat(query-editor): 支持查询另存为快捷键
- 首次保存弹窗自动聚焦查询名称输入框\n- 已保存查询可另存为独立副本并打开新标签页\n- 新增 Cmd/Ctrl+Shift+S 可配置快捷键和平台提示\n- 补齐多语言目录与保存、持久化回归测试
|
2026-08-07 11:33:37 +08:00 |
|
Syngnat
|
a3f032b1d9
|
✨ feat(titlebar): 为新建操作提示平台快捷键
- 新建查询与新建连接悬浮提示展示当前生效快捷键
- 按 macOS 和 Windows 格式化组合键并跟随用户自定义绑定
- 快捷键禁用时回退操作名称并补齐平台与隔离回归测试
|
2026-08-07 10:06:22 +08:00 |
|
Syngnat
|
2f24c9667c
|
🐛 fix(workbench): 统一最近连接与资源树图标
- 最近连接复用资源树的数据库图标类型与强调色解析
- 保留自定义图标和颜色并按连接类型回退默认视觉
- 新增渲染回归测试覆盖 MySQL 与自定义 PostgreSQL 图标
|
2026-08-07 10:05:53 +08:00 |
|
Syngnat
|
79af082908
|
🐛 fix(sidebar): 修复连接树末项无法完整显示 (#863)
## 背景
V2 左侧连接树内容超过可视区域时,虚拟滚动高度按外层完整高度计算,而实际列表区域还需避开顶部间距和横向滚动条预留,导致最末项无法完整滚入视图。
## 修改内容
- 按 V2 实际可见区域计算连接树虚拟滚动高度
- 保持旧版侧边栏原有高度行为不变
- 补充正常高度、极小高度与高 DPI 小数高度的回归测试
## 影响范围
- 仅 V2 左侧连接树的虚拟滚动边界
- 不修改连接数据、展开状态或旧版 UI 布局
## 验证
- `npm test -- --minWorkers=1 --maxWorkers=1`(前端全量测试)
- `npm run build`(前端生产构建)
- `npm test -- --run src/components/sidebarV2Utils.tree-height.test.ts`
- `npm test -- --run src/components/Sidebar.locate-toolbar.test.tsx`
|
2026-08-07 08:15:15 +08:00 |
|
Syngnat
|
4d190989df
|
✨ feat(external-sql): 支持 SQL 文件指定执行数据库 (#862)
## 背景
Issue #847 希望外部 SQL 文件能够单独指定执行连接和数据库,并在后续打开时自动恢复该上下文,减少在数据库客户端之间复制 SQL
的操作成本。
## 变更点
- 在外部 SQL 文件右键菜单增加“指定执行数据库”,支持选择连接、数据库及清除单独绑定
- 将文件绑定持久化到外部 SQL 目录配置,并在树节点、最近文件、大文件执行、顶部文件入口和 AI 文件检查中统一解析
- 文件或目录重命名时同步迁移绑定,删除时清理失效绑定
- 最近 SQL 文件按物理路径去重,避免切换指定数据库后重复展示同一文件
- 补充六语言文案及绑定优先级、持久化、生命周期和菜单回归测试
## 影响范围
- 仅影响外部 SQL 文件的上下文选择和最近文件展示
- 未绑定文件仍使用原有目录默认上下文;清除单独绑定后恢复原行为
- 不涉及后端接口、数据库迁移、依赖或构建链路变更
## 验证
- `npx vitest run src/components/TabManager.recent.test.ts
src/components/ai/aiExternalSqlFileInsights.test.ts
src/components/sidebar/sidebarLegacyNodeMenu.external-sql.test.tsx
src/store.test.ts src/utils/externalSqlTree.test.ts`:128 项通过
- `npx tsc --noEmit`:通过
- `npm run build`:通过
- 六份 `shared/i18n/*.json`:解析成功且键集合一致
- `git diff --cached --check`:通过
Closes #847
|
2026-08-07 08:15:11 +08:00 |
|
Syngnat
|
0439c472a9
|
🐛 fix(data-grid): 统一待提交单元格视觉与填充模板交互
- 将待提交状态绘制到完整单元格,保持悬停、行选择与固定列视觉一致
- 区分单元格选择、剪贴板复制、填充模板与批量设值操作
- 统一模板目标行解析,排除源行、查找高亮及右键误批量应用
- 完善无障碍提示、多语言文案与回归测试
Refs #856
|
2026-08-06 23:52:26 +08:00 |
|
AutumnNazi
|
da17b8e53d
|
🐛 fix(sidebar): 修复连接树末项无法完整显示
|
2026-08-06 22:42:55 +08:00 |
|
AutumnNazi
|
aeb0b5bc07
|
✨ feat(external-sql): 支持 SQL 文件指定执行数据库
- 为外部 SQL 文件增加连接与数据库单独绑定,并持久化保存
- 统一侧边栏、最近文件、大文件执行、工具栏和 AI 文件检查上下文
- 在文件与目录重命名、删除时迁移或清理绑定
- 按物理路径去重最近 SQL 文件并补充多语言与回归测试
|
2026-08-06 21:46:37 +08:00 |
|
Syngnat
|
b3855fa7c8
|
✨ feat(table-designer): 支持选择默认 Schema (#850) (#861)
## 关联 Issue
Fixes #850
## 问题根因
表设计器只接收数据库名和表名,PostgreSQL/Kingbase 的 Schema
上下文没有从数据库树、数据视图继续传递;建表时也直接使用裸表名。因此同一数据库存在多个 Schema 时,创建和修改 SQL 会落到连接默认
Schema,无法选择目标 Schema。
## 修复方案
- 在数据库树、数据视图和表设计器入口之间传递 Schema 上下文。
- 为 PostgreSQL/Kingbase 表设计器增加 Schema 选择器,通过 Schema 列表和
`current_schema()` 初始化当前选择,并按连接记忆最近一次选择。
- 建表时使用所选 Schema 限定裸表名;改表、索引和注释操作统一解析所选 Schema,同时保留显式 `schema.table`
的优先级。
- 使用请求序号和最新选择引用避免异步元数据响应覆盖用户切换;连接被替换或删除时同步清理失效记忆。
- 增加 Schema 解析、连接记忆和入口上下文传递的回归测试。
## 验证结果
| 验证项 | 命令或步骤 | 结果 |
| --- | --- | --- |
| Schema 与入口定向回归 | `npm --prefix frontend test -- <相关测试文件>` | 通过,327/327
|
| 独立安全复核定向回归 | 3 个相关测试文件 | 通过,209/209 |
| TypeScript 检查 | `tsc --noEmit` | 通过 |
| 前端构建 | `npm --prefix frontend run build` | 通过 |
| 完整前端回归 | `npm --prefix frontend test` | 通过,447 个测试文件、3793/3793 |
| 桌面与窄屏 GUI 验收 | 浏览器操作 PostgreSQL/Kingbase 表设计器 Schema 展示、选择及上下文传递路径 |
通过,无布局重叠或控制台错误 |
| 差异检查 | `git diff --check`、`git diff --cached --check` | 通过 |
## 风险与兼容性
Schema 选择能力仅对 PostgreSQL 和 Kingbase 开启;其他数据库类型继续沿用原有数据库/Schema 解析和 UI
行为。未修改后端 API、持久化数据格式或数据库 `search_path`。当 `current_schema()`
查询失败且没有显式或已记忆 Schema 时保持裸表名,交由数据库连接默认行为处理。
## 回滚方式
回滚提交 `92b103a23ce243650025c1c047167be61394d9ed` 即可恢复原行为;本次改动不迁移或修改用户数据。
|
2026-08-06 21:00:36 +08:00 |
|
Syngnat
|
ed88831661
|
✨ feat(tab): 支持标签显示直属分组名称 (#860)
## 背景
Issue #853 希望在“设置 → 工作区 → Tab 标签”中增加连接分组名称展示能力,便于在多个服务器分组之间快速识别当前标签来源。
## 变更点
- 在 Tab 标签显示元素中增加“分组”选项,双行布局启用后默认放在第二行
- 根据连接 ID 解析连接直接所属的分组名称,并在分组重命名、移动连接或删除分组后即时刷新
- 嵌套分组场景仅展示连接的直属分组名称,不继承、不拼接父级分组路径
- 未分组连接的分组值保持为空,不生成多余分隔符
- 为长分组名称增加收缩与省略显示,并补充六种语言文案
- 增加分组展示、未分组回退及嵌套直属分组边界测试
## 影响范围
- 仅影响工作区 Tab 标签的可选显示内容
- “分组”默认不启用,不改变现有用户的 Tab 布局和显示结果
- 不涉及后端接口、连接配置、数据库结构或数据迁移
## 验证
- `npm run test -- src/utils/tabDisplay.test.ts`:27/27 通过
- `npx tsc --noEmit --pretty false`:通过
- `npx vite build`:通过
- 六套 `shared/i18n/*.json`:解析通过
- `git diff --check origin/dev...HEAD`:通过
Closes #853
|
2026-08-06 20:49:11 +08:00 |
|
Syngnat
|
fd97034d97
|
feat(data-grid-filter): 优化筛选框显示与性能 (#858)
## 功能
- 优化筛选功能在大数据量时的性能
- 实现值统计结果的升降序排序功能
- 将原有复选框列表替换为带排序功能的Ant Design表格
- 修复筛选弹窗内的事件冒泡问题,避免干扰列表头拖拽
## 验证
- 聚焦测试:18/18 通过。
- tsc --noEmit、Vite 生产构建、git diff --check 均通过。
|
2026-08-06 20:48:43 +08:00 |
|
mango
|
92b103a23c
|
✨ feat(table-designer): 支持选择默认 Schema (#850)
|
2026-08-06 20:11:42 +08:00 |
|
Syngnat
|
e406aba664
|
🐛 fix(mqtt): 修复 Broker 地址端口重复追加
- 前端统一规范化协议、主机与端口,清理历史重复端口配置
- 后端防御性解析 Broker 地址并兼容非默认端口与 IPv6
- 补充保存重开测试及 Broker 地址回归覆盖
|
2026-08-06 18:20:23 +08:00 |
|
AutumnNazi
|
0921324374
|
✨ feat(tab): 支持标签显示直属分组名称
- 工作区 Tab 标签新增分组显示项,未分组连接保持为空
- 按连接直接所属分组解析名称,不继承或拼接父级分组路径
- 支持分组变更即时刷新并限制长名称宽度
- 补充六种语言文案及嵌套分组回归测试
|
2026-08-06 18:19:33 +08:00 |
|
wait
|
0a98541a8e
|
feat(data-grid-filter): 优化筛选框显示与性能
- 优化筛选功能在大数据量时的性能
- 实现值统计结果的升降序排序功能
- 将原有复选框列表替换为带排序功能的Ant Design表格
- 修复筛选弹窗内的事件冒泡问题,避免干扰列表头拖拽
|
2026-08-06 17:00:07 +08:00 |
|
Syngnat
|
32dfd39827
|
🐛 fix(query): 放开所有数据源默认查询超时
- 区分连接超时与查询超时,默认查询仅保留手动取消能力
- 清理各数据库及 HTTP 数据源由连接配置派生的请求超时
- 新增按请求 queryTimeout 透传并保留计数任务显式时限
- 补充前后端、缓存键与多驱动超时策略回归测试
|
2026-08-06 16:50:28 +08:00 |
|
Syngnat
|
e2615d9cb8
|
✨ feat(data-grid): 增加结果视图字段搜索定位 (#854)
## 关联 Issue
Closes #845
## 改动说明
- 在文本结果视图增加字段搜索,支持字段名和字段注释的前缀、包含匹配
- 文本视图选中唯一字段后自动滚动定位并高亮,不显示无意义的上下项导航
- 在 JSON 结果视图增加字段搜索,只定位每条记录的顶层真实字段键,避免命中字段值或嵌套 JSON 同名键
- JSON 视图支持上一项、下一项循环定位,并显示“当前 / 总数”
- 匹配顺序为字段完全匹配、字段前缀、字段包含、注释前缀、注释包含,忽略大小写并保留真实字段名
- 补充 Enter、Shift+Enter、Escape 键盘操作以及六种语言文案
- 统一搜索框与导航按钮为 24px 高度,移除叠加焦点光晕,并将输入及占位文字调整为 12px
## 验证
- `npm test -- --run src/utils/dataGridRecordFieldSearch.test.ts
src/components/DataGridRecordViews.interaction.test.tsx
src/components/DataGrid.layout.test.tsx`(46 tests passed)
- `npm run build`
- `go test ./shared/i18n`
|
2026-08-06 12:11:54 +08:00 |
|
kunghim
|
cf8397d310
|
✨ feat(data-grid): 增加结果视图字段搜索定位
|
2026-08-06 11:33:06 +08:00 |
|
mango
|
90020799ad
|
🐛 fix(tab): 修复 Schema 副行显示 (#851)
|
2026-08-06 11:18:09 +08:00 |
|
Syngnat
|
bdd84db52c
|
🐛 fix(data-sync): 修复跨库同步静默失败与数据安全问题
- 聚合表级失败并保留已确认提交计数,避免任务误报成功
- 绑定分析上下文与实际同步模式,阻止陈旧或无效配置执行
- 加固全量覆盖及同端点分页写入,补充跨库与失败回归测试
Refs #846
|
2026-08-05 23:55:44 +08:00 |
|
Syngnat
|
005113dd79
|
🐛 fix(redis): 修复列表新增与精确删除
- 对齐新版 Redis List 头尾新增的 Wails 参数契约
- 分别使用 LPUSH 与 RPUSH 保证插入位置语义
- 按索引原子删除并避免重复值误删
- 补充多语言文案与前后端回归测试
Refs #639
|
2026-08-05 22:33:53 +08:00 |
|
Syngnat
|
450b70178c
|
🐛 fix(oceanbase/dameng): 修复元数据连接与带点对象名解析
- OceanBase Oracle 元数据请求复用基础连接,避免 CURRENT_SCHEMA 初始化触发 EOF
- 达梦结果编辑保留带点 owner 边界,统一 SQL 预览与实际执行目标
- 完善限定名解析、补全导航与数据库回归测试
Refs #836
|
2026-08-05 16:24:02 +08:00 |
|
Syngnat
|
e42f2ba7b2
|
✨ feat(tab): 增加查询标签右键重命名 (#844)
## 变更说明
- 在查询 Tab 的右键菜单中增加“重命名查询”入口。
- 复用 QueryEditor 现有的重命名流程,保持保存记录、Tab 标题和未保存查询引导行为一致。
- 右键非当前查询 Tab 时先激活目标 Tab,再打开对应的重命名窗口。
- SQL 文件 Tab 保留现有不可重命名限制,表数据等非查询 Tab 不显示该菜单项。
- 通过带 tabId 的事件只通知目标 QueryEditor,避免误操作其他查询 Tab。
## 测试
- 定向测试:325 passed
- npm run build:TypeScript 和 Vite 构建通过
- Wails Windows 测试包:GoNavi-issue-835-query-tab-rename.exe
- 已完成人工测试验证
Fixes #835
|
2026-08-05 14:35:49 +08:00 |
|
kunghim
|
209b6638bd
|
✨ feat(tab): 增加查询标签右键重命名
|
2026-08-05 14:04:24 +08:00 |
|
mango
|
a0f84fd6e3
|
🐛 fix(about): 移除重复更新日志入口 (#834)
|
2026-08-05 11:29:59 +08:00 |
|
mango
|
9570306522
|
🐛 fix(sidebar): 优化数据库树纵向滚动条显示 (#838)
|
2026-08-04 20:50:44 +08:00 |
|
Syngnat
|
527795ffc1
|
✅ test(sidebar): 移除失效源码契约断言 (#841)
## 问题背景
`frontend/src/components/Sidebar.locate-toolbar.test.tsx` 中的 saved-query
/ external SQL 本地化用例仍通过 `indexOf` 检查旧的 `const loadTables = async ...`
源码签名。Sidebar 加载器已重构为 `runLoadTables` 加调度包装,等价行为保持不变,但该源码字符串门禁返回
`-1`,导致当前 `dev` 的前端全量测试失败。
该失败已在通过 `git archive upstream/dev` 导出的纯净快照中执行 `npm ci` 后独立复现,与其他功能分支无关。
## 修复方案
- 删除该用例中已经没有断言消费方的源码读取、字符串切片、index 门禁和空循环。
- 保留 14 个 saved-query / external SQL 翻译键在全部 6 种支持语言中的实际解析断言。
- 更新测试名称,使其准确描述仍在验证的行为。
不修改 Sidebar 生产代码,也不恢复已被调度器替代的旧函数签名。
## 验证结果
| 验证项 | 命令 | 结果 |
| --- | --- | --- |
| 目标回归测试 | `npm --prefix frontend test --
src/components/Sidebar.locate-toolbar.test.tsx -t 'resolves saved-query
and external SQL localization keys for every supported language'` |
通过,1/1 |
| Sidebar 测试文件 | `npm --prefix frontend test --
src/components/Sidebar.locate-toolbar.test.tsx` | 通过,85/85 |
| 测试策略门禁 | `npm --prefix frontend test -- src/testPolicy.test.ts` |
通过,3/3 |
| 依赖补丁测试 | `npm --prefix frontend test --
src/utils/rcResizeObserverSidebarLifecycle.test.ts` | 通过,4/4 |
| 前端全量测试 | `npm --prefix frontend test` | 通过,444/444 个测试文件、3739/3739 个测试
|
| 生产构建 | `npm --prefix frontend run build` | 通过 |
| 差异检查 | `git diff --check`、`git diff --cached --check` | 通过 |
## 风险与兼容性
- 仅修改测试,不影响生产运行行为、公共 API、数据或配置。
- 删除的是未使用变量、空循环和对实现排版敏感的源码字符串门禁。
- 翻译键覆盖范围未减少,实际跨语言解析断言完整保留。
## 回滚方式
回滚提交 `1a95b8c7c5bbf576660d1300fc8ce90947122981` 即可恢复原测试。回滚不影响生产数据或配置。
|
2026-08-04 20:04:26 +08:00 |
|
mango
|
1a95b8c7c5
|
✅ test(sidebar): 移除失效源码契约断言
|
2026-08-04 19:59:47 +08:00 |
|
Syngnat
|
44800b0cb6
|
🐛 fix(data-grid): 修复单元格编辑框重复边框 (#837) (#840)
## 关联 Issue
Closes #837
## 问题根因
V2 数据表格双击可编辑单元格后,表格单元格本身已经提供矩形编辑边界,内部 Ant Design `Input`、`Input` 包装层或
`DatePicker` 又保留默认圆角边框和焦点阴影,形成方框内嵌圆角框的重复边界。
## 修复方案
仅在 V2 DataGrid
虚拟内联编辑上下文中去除内部编辑控件的边框、圆角、背景和阴影,保留表格单元格作为唯一编辑边界。组件结构、表单校验、双击激活和失焦保存逻辑均未修改。
新增布局回归测试,约束内联编辑控件保持无独立边框、无圆角、透明背景且无阴影。该测试在修复前因缺少无边框规则而失败,修复后通过。
## 验证结果
| 验证项 | 命令或步骤 | 结果 |
| --- | --- | --- |
| 修复前回归测试 | `npm --prefix frontend test --
src/components/DataGrid.layout.test.tsx -t 'uses the table cell as the
only V2 inline edit frame'` | 按预期失败:缺少 `border: 0 !important` |
| DataGrid 回归测试 | `npm --prefix frontend test --
src/components/dataGridVirtualScroll.test.ts
src/components/DataGrid.layout.test.tsx` | 通过,49/49 |
| 双击编辑与失焦保存 | `npm --prefix frontend test --
src/components/DataGrid.ddl.test.tsx -t 'shows a pending edited value
when the field later becomes read-only'` | 通过,1/1 |
| 依赖补丁测试 | `npm --prefix frontend test --
src/utils/rcResizeObserverSidebarLifecycle.test.ts` | 通过,4/4 |
| 生产构建 | `npm --prefix frontend run build` | 通过 |
| 差异检查 | `git diff --check`、`git diff --cached --check` | 通过 |
| 前端全量测试 | `npm --prefix frontend test` | 3739/3740 通过;唯一失败为
`Sidebar.locate-toolbar.test.tsx` 的既有基线错误 |
全量测试中的 Sidebar 失败已使用 `git archive upstream/dev` 导出的纯净快照、`npm ci`
和同一目标命令独立复现,确认与本 PR 的 DataGrid 两文件改动无关。该基线测试会在独立分支和 PR 中修复,避免混入本 Issue。
GUI 桌面与窄屏验证未完成:本会话唯一可用的 IAB 浏览器后端在创建验证标签时持续返回 `browser guest not
attached (webview not ready)`,且没有其他浏览器后端可用,因此未将 GUI 检查写为通过。DatePicker
也未在真实数据库元数据场景中手动验证;其 selector 与 Input 共用本次 CSS 规则,并由回归契约覆盖。
## 风险与兼容性
- 不涉及数据或配置格式变化。
- 不修改公共 API、编辑状态或保存行为。
- 不涉及并发或算法复杂度变化。
- CSS 作用域限定为 V2 DataGrid 虚拟内联编辑控件,不影响弹窗和其他页面输入框。
- 已知验证边界是缺少实际 GUI 截图以及真实时间字段 DatePicker 的手动操作;相关自动化、CSS 契约和生产构建已通过。
## 回滚方式
回滚提交 `0d2f021fd85f0cc41af1740d995a823f8202d4d2`
即可恢复原样。回滚仅恢复内联编辑控件样式和对应测试,不影响数据或配置。
|
2026-08-04 19:59:41 +08:00 |
|
Syngnat
|
0c5b8f0ef4
|
🐛 fix(query-editor): 修复补全标识符大小写 (#839)
## 变更说明
- 表名和字段名补全会根据用户已输入片段处理大小写:元数据为全大写、输入为全小写时,插入结果使用小写。
- 元数据本身为小写或混合大小写时保留真实名称,避免 MySQL 大小写敏感环境查询失败。
- 普通候选、内联补全、SQL memory、确定性补全和 AI 补全使用一致规则。
- Tab 接受内联候选时替换已输入前缀,并保留补全 SQL 的剩余内容。
- PostgreSQL、Kingbase 等需要保留标识符大小写语义的方言不执行自动转换。
- 支持带数据库或 schema 限定符的表名补全,仅处理标识符最后一段。
## 测试
- npm test -- --run
src/components/queryEditor/QueryEditorAiAssist.test.ts
src/components/QueryEditor.external-sql-save.test.tsx(343 passed)
- npm run build
- wails build -s -skipbindings -o GoNavi-issue-828-case-v3.exe
- Windows 测试包人工验证通过
Fixes #828
|
2026-08-04 19:58:35 +08:00 |
|
mango
|
0d2f021fd8
|
🐛 fix(data-grid): 修复单元格编辑框重复边框 (#837)
|
2026-08-04 19:54:16 +08:00 |
|
kunghim
|
52c1cdfb89
|
🐛 fix(query-editor): 修复补全标识符大小写
|
2026-08-04 16:04:13 +08:00 |
|
Syngnat
|
ad16c1b872
|
🐛 fix(query-editor): 修复达梦 JOIN 查询自动限行歧义
达梦改用原生 LIMIT/OFFSET,避免 ROWNUM 派生表包装使 JOIN 同名列触发列名歧义。
补充自动限行、AI 只读预览和分页 SQL 的回归覆盖。
|
2026-08-04 15:13:57 +08:00 |
|
Syngnat
|
0202bf0203
|
Merge remote-tracking branch 'origin/dev' into dev
|
2026-08-04 11:34:32 +08:00 |
|
Syngnat
|
7ec66dc732
|
🐛 fix(query-editor/db): 修复运行中 SQL 无法停止
- 查询 ID 生成前支持终止执行,并统一刷新、翻页和 Mongo 多语句的取消代际
- 后端在连接建立和事务锁等待前登记取消,保留登记直到执行 owner 退出
- 使用 registration ID 防止旧任务清理同 ID 的新查询
- 补充前后端取消竞态与并发回归测试
Refs #754
|
2026-08-04 11:07:08 +08:00 |
|
Syngnat
|
35e1a99d19
|
✨ feat(update): 手动检查更新时发现新版本自动弹出更新日志弹窗 (#832)
resolves #818
## 变更
通过新增 onManualCheckHasUpdateRef
回调桥接,在用户手动点击“检查更新”并发现新版本后自动打开更新日志弹窗,静默检查不受影响。
## 验证
✅ TypeScript 类型检查通过
✅ 27 个测试全部通过(含新增回归测试)
✅ Lint 无新增错误
✅ 功能行为不变:手动检查发现新版本仍自动弹出更新日志弹窗
|
2026-08-04 10:10:57 +08:00 |
|
wait
|
e42f3738e2
|
🐛 fix(update): 修复切换通道时误弹更新日志
- 仅在用户手动点击“检查更新”时打开更新日志弹窗
- 通道切换后的自动复查和静默检查保持原有行为
- 新增通道切换发现更新时不触发弹窗的回归测试
|
2026-08-04 09:48:16 +08:00 |
|
Syngnat
|
f2e773efc5
|
🐛 fix(window): 修复 Windows 启动最大化显示不全
- 校验原生窗口状态与 WebView2 surface 覆盖率
- 在窗口线程刷新 WebView2 bounds,并为异步窗口命令增加状态屏障
- 完善工作区兜底和多显示器坐标转换
- 补充启动最大化、状态轮询及跨平台回归测试
Fixes #824
|
2026-08-03 23:26:15 +08:00 |
|
Syngnat
|
1403393178
|
🐛 fix(query-editor): 修复表名及别名字段补全异常
- 表名候选改为严格前缀匹配,并在截断时触发补全重查
- 识别逗号分隔表、别名及跨库引用,补充词法边界回归测试
Fixes #810
Fixes #827
|
2026-08-03 21:51:41 +08:00 |
|
Syngnat
|
b57561f1b0
|
🐛 fix(redis): 修复 Key 详情导致树列表下移
- 解耦 Redis Key 树与详情面板的纵向布局轨道
- 将加载遮罩限制在详情面板并保留加载防抖行为
- 补充布局与交互回归测试
Fixes #787
|
2026-08-03 20:55:57 +08:00 |
|
Syngnat
|
07835ea125
|
🐛 fix(connection): 修复连接环境标识与生产操作保护 (#830)
## 变更说明
Closes #823
- 删除分组级环境预设,连接分组下新建查询的 Tab、侧边栏和相关视图统一读取连接自身的环境类型与颜色。
- 对未配置任何生产保护的生产连接,所有可能修改数据、结构、配置、服务或消息的入口增加 5 秒风险确认,并要求点击“我已知悉”。
- 写操作成功提示等待实际刷新完成,避免提示早于侧栏、表概览、Redis、Nacos 等界面状态更新。
- 增加环境迁移、生产风险确认、刷新竞态和相关入口测试。
## 验证
- `npx tsc --noEmit` 通过
- `npx vite build` 通过
- 定向 Vitest:8 个测试文件,55 个测试全部通过
- `go test ./shared/i18n` 仍受上游已有的 `ru-RU` 缺少
`table_designer.tdengine.tag.value` 阻断,本次未引入该问题
|
2026-08-03 19:49:10 +08:00 |
|
Syngnat
|
a27222880c
|
fix(query-editor): 查询筛选字段时支持字符串模糊匹配 (#831)
Fixes #822
## 变更说明
修复 SQL 编辑器补全候选只能进行前缀匹配的问题。
- 字段名支持子串匹配,例如输入 `title` 可以匹配 `short_title`。
- 三段式、别名和普通字段补全统一支持模糊匹配。
- 表、视图、物化视图在普通、数据库限定和 Schema 限定场景支持子串匹配。
- 保持精确匹配、前缀匹配优先于普通子串匹配。
- 增加 Monaco `filterText`,避免候选被编辑器二次过滤。
- 增加相关回归测试。
## 验证
- 补全相关测试通过
- TypeScript 类型检查通过
- Wails Windows 完整构建通过
|
2026-08-03 19:48:49 +08:00 |
|
Syngnat
|
2f9dbdb754
|
🐛 fix(query-editor): 修复大字号表候选下划线裁剪 (#829)
## 背景
SQL 查询编辑器的表候选项使用 Monaco 原生双行布局,行高固定为 18px + 18px。
当编辑器字号调整为 18px 或 20px 时,表名中的下划线和字母下行部分可能被候选项行高裁剪。
## 变更内容
- 新增 SQL 候选项布局计算逻辑,根据最终编辑器字号动态计算表名行高和候选项总高度。
- 将 Monaco 的 `suggestLineHeight` 与动态布局保持一致。
- 使用 CSS 变量替代候选项中的固定行高,确保大字号下内容完整显示。
- 保持默认字号下原有 36px 候选项高度不变。
- 增加默认字号、大字号和显式字号配置的单元测试。
## 影响范围
- 仅影响 v2 SQL 查询编辑器的表候选项。
- 旧版编辑器和其他类型的 Monaco 编辑器不受影响。
- 不涉及数据结构、接口、数据库或构建配置变更。
- SQL 字号为 18px 时,候选项高度调整为 43px;20px 时调整为 46px。
## 验证方式
- `sqlEditorTypography.test.ts`:3 个测试通过。
- `MonacoEditor.typography.test.tsx`:6 个测试通过。
- TypeScript 类型检查通过:`npx tsc --noEmit`。
- `git diff --check 630ba7fc^ 630ba7fc` 通过。
|
2026-08-03 19:48:26 +08:00 |
|
kunghim
|
189cd11cb9
|
fix(query-editor): support substring completion matching
|
2026-08-03 16:45:33 +08:00 |
|
AutumnNazi
|
ad7179941f
|
🐛 fix(connection): 修复连接环境标识与生产操作保护
- 分组不再覆盖连接自身环境类型,Tab 和侧栏视图统一使用连接环境颜色\n- 为未配置生产保护的生产连接增加 5 秒风险确认,覆盖 SQL、数据、结构、同步、Redis、Nacos 和消息操作\n- 写操作完成后等待刷新请求结束再提示成功,避免界面状态落后于实际结果\n- 增加连接环境、生产风险确认和刷新竞态测试,关联 Issue #823
|
2026-08-03 16:39:06 +08:00 |
|
wait
|
032c43775c
|
✨ feat(update): 手动检查更新时发现新版本自动弹出更新日志弹窗
通过新增 `onManualCheckHasUpdateRef` 回调桥接,在用户手动点击“检查更新”并发现新版本后自动打开更新日志弹窗,静默检查不受影响。
|
2026-08-03 15:50:28 +08:00 |
|