Syngnat
|
3c19656603
|
🐛 fix(data-grid): 支持单值粘贴填充选区 (#781) (#784)
## 关联 Issue
Closes #781
## 问题根因
表格拖选会在 `currentSelectionRef` 中保存完整目标选区,但剪贴板粘贴逻辑仅使用 `selectionStartRef`
作为锚点,并按剪贴板二维矩阵生成目标坐标。单个复制值解析为 `1 x 1` 矩阵,因此只更新了锚点单元格,没有使用其余已选单元格。
## 修复方案
- 当剪贴板内容为 `1 x 1` 且当前选区超过一个单元格时,将单值映射到选区中的每个目标坐标。
- 粘贴时根据当前显示行和列重新解析选区坐标,避免排序后使用过期位置。
- 继续复用现有只读列过滤、草稿合并、新增行、删除行和原值比较逻辑。
- 多行或多列剪贴板仍保持原有的锚点二维矩阵粘贴行为,不引入重复铺贴或跨页填充语义。
## 验证结果
| 验证项 | 命令或步骤 | 结果 |
| --- | --- | --- |
| 修复前回归 | `npm --prefix frontend test --
src/components/useDataGridBatchActions.test.tsx` | 新增用例按预期失败:实际仅更新
`row-1.id`,期望两行四格 |
| 回归测试 | `npm --prefix frontend test --
src/components/useDataGridBatchActions.test.tsx` | 通过,5/5 |
| 剪贴板相关测试 | `npm --prefix frontend test --
src/components/dataGridClipboardPaste.test.ts
src/components/dataGridSelectionCopy.test.ts
src/components/useDataGridBatchActions.test.tsx` | 通过,3 个文件、13/13 |
| 类型与生产构建 | `npm --prefix frontend run build` | 通过,`tsc && vite build`
成功 |
| 差异检查 | `git diff --cached --check` | 通过 |
前端全量测试 `npm --prefix frontend test` 执行结果为 420 个文件通过、1 个文件失败,3481 项测试通过、1
项失败。唯一失败是 `src/testPolicy.test.ts` 检测到 `upstream/dev` 已存在的
`AIMessageCodeBlock.dependencyBoundary.test.ts` 读取源码文本;本 PR
未修改相关文件。该上游既有错误将通过独立 PR 修复,避免混入本 Issue。
GUI 验证未完成:本地 Vite 服务已正常启动,但浏览器自动化宿主连续返回 `browser guest not attached
(webview not ready)`,没有创建可操作页面或截图证据。未将该项记为通过。
## 风险与兼容性
- 不涉及数据或配置格式变化、数据库迁移或公共 API 变化。
- 仅改变 `1 x 1` 剪贴板内容在多格选区中的行为;现有二维矩阵粘贴由相关回归测试覆盖并保持不变。
- 操作仍只影响当前已加载并选中的可写单元格;只读列、已删除行和未变化值会沿用现有规则跳过。
- 更新规模随当前选区大小线性增长;没有新增网络请求、并发路径或跨页扫描。
- 验证边界:自动化测试覆盖了前端草稿状态与消息计数,未在真实 Wails/MySQL 环境提交数据库变更。
## 回滚方式
回滚提交 `ec6b4e9e0182a85b862627177c8d373137d1a90b`
即可恢复原有单锚点粘贴逻辑。该提交不改变数据或配置格式,回滚本身不需要数据迁移。
|
2026-07-29 22:26:24 +08:00 |
|
Syngnat
|
5b90c8ae80
|
🐛 修复达梦系统视图查询失败 (#783)
背景:达梦查询 DBA_TAB_PRIVS、USER_COL_COMMENTS 等系统视图时,元数据查询可能成功但返回空字段列表,GoNavi
随后仍按可编辑结果处理并自动注入 ROWID,导致 SQL 执行失败(Issue #780)。
修改:
- 空字段元数据结果按只读结果处理,阻止 Oracle/Dameng 定位器注入 ROWID。
- 保留普通业务表主键、唯一键和 ROWID 编辑逻辑不变。
- 增加 USER_COL_COMMENTS 和 DBA_TAB_PRIVS 回归测试。
验证:
- QueryEditor 测试:285/285 通过
- npm run build 通过(仅保留仓库已有的 chunk size warning)
Fixes #780
|
2026-07-29 22:26:14 +08:00 |
|
Syngnat
|
fb686a3d94
|
🐛 fix(query-editor): 将执行耗时固定到编辑器底部
- 将计时状态移至 Monaco 底部并在执行完成后保留耗时
- 按一秒和五秒边界显示闪电、兔子或乌龟速度图标
- 保持工具栏停止按钮紧凑并补齐计时生命周期与布局回归
|
2026-07-29 20:36:27 +08:00 |
|
Syngnat
|
cb3a5f6b61
|
🐛 fix(rabbitmq): 修复连接类型回退与管理端口误用
- 以当前选中的数据源类型构造测试和保存配置,避免 RabbitMQ 被保存为 MySQL
- 拦截默认 AMQP/AMQPS 端口并提示 Management API 端口
- 保留显式 HTTP/HTTPS 管理地址的自定义端口能力
- 补充连接类型漂移和端口校验回归测试
|
2026-07-29 20:35:04 +08:00 |
|
mango
|
ec6b4e9e01
|
🐛 fix(data-grid): 支持单值粘贴填充选区 (#781)
|
2026-07-29 18:30:17 +08:00 |
|
Syngnat
|
b6af0a09cc
|
✨ feat(query-editor/sidebar): 支持执行计时与单库展开
- 在停止按钮中实时展示 SQL 执行耗时,并保持计时宽度稳定
- 新增默认关闭且可持久化的同连接单数据库展开设置
- 覆盖关系型数据库与 Redis 节点,并补充多语言和回归测试
Refs #754
Refs #755
|
2026-07-29 17:30:37 +08:00 |
|
AutumnNazi
|
5a4c1e4c4e
|
🐛 fix(dameng): 修复系统视图查询被注入 ROWID
- 达梦系统视图字段元数据为空时按只读结果处理\n- 避免 DBA_TAB_PRIVS 和 USER_COL_COMMENTS 查询追加 ROWID\n- 增加两个达梦系统视图查询回归测试
|
2026-07-29 17:22:36 +08:00 |
|
Syngnat
|
bd259e4e51
|
🐛 fix(mongodb/query-editor): 修复受限账号连接与不限行数
- MongoDB 指定数据库时保留连接校验并跳过全库枚举
- 允许查询最大行数为 0 并持久化不限设置
- 补充数据库枚举与不限行数持久化回归测试
Refs #741
Refs #752
|
2026-07-29 17:19:15 +08:00 |
|
Syngnat
|
a502d0938f
|
Merge remote-tracking branch 'origin/dev' into dev
|
2026-07-29 12:06:15 +08:00 |
|
Syngnat
|
b5966fbcbc
|
🎨 style(nacos): 优化服务发现与变更提示布局
- 扁平化实例列表并移除多余分隔线
- 保留元数据表格层次并完善响应式布局
- 将远端配置变更提示收敛为紧凑状态条
|
2026-07-29 12:05:10 +08:00 |
|
Syngnat
|
98d727e882
|
🐛 fix(nacos-config): 修复配置发布监听误报
- 发布前停止当前监听,避免自发布事件触发远端变更提示
- 发布失败时恢复监听,成功后由详情刷新重建监听
- 移除瞬态 dirty 标签并补充发布时序回归测试
|
2026-07-29 12:05:01 +08:00 |
|
Syngnat
|
21951ca08a
|
✨ feat(nacos-service): 完善实例详情与列表交互
- 补充实例元数据展示并默认折叠详情
- 调整实例操作位置与详情展开交互
- 完善多语言文案和交互回归测试
|
2026-07-29 12:04:47 +08:00 |
|
Syngnat
|
4222bbbd48
|
✨ feat(redis): 支持 List 数据倒序显示
- 为索引列增加倒序优先排序,保持默认正序不变
- 倒序读取真实尾部窗口并保留原始 Redis 索引
- 补充前后端回归测试并同步 Wails 绑定
Refs #751
|
2026-07-29 11:32:58 +08:00 |
|
Syngnat
|
43c89f9c1e
|
🐛 fix(ai): 修复 WebView2 中 AI 面板动态模块加载失败 (#772)
## 背景
在 Wails WebView2 开发环境首次打开 AI 面板时,出现动态模块加载失败:
`Failed to fetch dynamically imported module: AIChatPanel.tsx`
同时 DevTools Network 中出现大量 Vite 502 请求,导致 AI 面板无法使用。
## 变更点
- 修复 AI 面板首次打开时动态模块加载失败的问题
- 调整代码高亮和 Mermaid 的加载方式,避免触发 Vite 依赖请求洪峰
- 增加依赖边界回归测试,确保普通代码块和 Mermaid 代码块正常渲染
## 影响范围
仅影响 AI 面板 Markdown、代码高亮和 Mermaid 渲染路径,不改变数据库连接、SQL 执行和普通工作台功能。
## 验证方式
- AI 依赖边界测试和 Markdown 测试共 8 项全部通过
- Wails WebView2 冷启动后 AI 面板正常显示“你好,我是 GoNavi AI”
- 修复后相关 Network 502 请求为 0
## 截图
<img width="2150" height="1168" alt="ai-panel-loaded-after"
src="https://github.com/user-attachments/assets/3151451f-2d23-4353-b45a-3e7a429ea6cb"
/>
<img width="2150" height="1168" alt="ai-panel-load-failure-before"
src="https://github.com/user-attachments/assets/00a6ef33-d536-4896-8de6-db847d3aafce"
/>
<img width="628" height="634" alt="ai-panel-network-502-before"
src="https://github.com/user-attachments/assets/db3b9974-3de6-4157-87b1-dfb17a45dcb1"
/>
## 备注
该 PR 目标分支为 `dev`,仅包含 AI 面板功能修复。
|
2026-07-29 11:02:18 +08:00 |
|
Syngnat
|
6cb36c1968
|
🔧 chore(wails): 同步后端接口绑定与依赖校验
- 重新生成 App 方法声明与运行时桥接
- 同步 Nacos、云备份等后端模型定义
- 更新前端依赖文件 MD5 并清理生成文件空白
|
2026-07-28 23:52:24 +08:00 |
|
Syngnat
|
8e0b5c5668
|
✨ feat(nacos-workbench): 优化配置管理与服务发现交互
- 固定服务列表分页到底部并重构端点优先的实例布局
- 支持 IPv6 端点和响应式实例操作区
- 修复详情乱序、监听启动竞态与重复远端变更提示
- 使用结构化索引处理配置导入选择并避免标签页冲突
|
2026-07-28 23:51:47 +08:00 |
|
Syngnat
|
12e410aead
|
🐛 fix(nacos-connection): 支持受限命名空间与权限保护
- 在连接表单中独立维护 Namespace ID 与 contextPath
- 为无命名空间列表权限的账号回退到已配置作用域
- 细分数据编辑、结构管理与导入保护并阻止陈旧操作
- 补齐侧边栏请求代际和连接 URI 回归测试
|
2026-07-28 23:51:36 +08:00 |
|
Guichena
|
396b662ea5
|
🐛 fix(ai): 修复 WebView2 中 AI 面板动态模块加载失败
|
2026-07-28 22:42:33 +08:00 |
|
mango
|
880ed671c9
|
🐛 fix(redis): 完善 Issue #759 全量扫描逻辑
|
2026-07-28 21:35:53 +08:00 |
|
mango
|
498e9b804b
|
🐛 fix: 修复 Issue #759 (Closes #759)
|
2026-07-28 20:00:53 +08:00 |
|
Syngnat
|
01b666216a
|
🐛 fix(sql-editor): 保留 PostgreSQL JSONB 问号运算符
仅对 OceanBase Oracle 启用问号位置占位符,避免格式化 PostgreSQL JSONB ?| 与 ?& 运算符时插入空格。
Refs #762
|
2026-07-28 19:40:45 +08:00 |
|
Syngnat
|
8f7b80eb8c
|
Merge pull request #769 from virgosgod-maker/fix/issue-762
|
2026-07-28 19:31:01 +08:00 |
|
Syngnat
|
347063f136
|
Merge pull request #768 from virgosgod-maker/fix/issue-763
|
2026-07-28 19:31:01 +08:00 |
|
Syngnat
|
bb2a577159
|
Merge pull request #767 from virgosgod-maker/fix/issue-764
|
2026-07-28 19:31:00 +08:00 |
|
Syngnat
|
49ebcc5125
|
Merge pull request #765 from virgosgod-maker/fix/issue-753
|
2026-07-28 19:31:00 +08:00 |
|
Syngnat
|
a38dc80469
|
Merge pull request #766 from virgosgod-maker/fix/frontend-test-baseline-20260728
|
2026-07-28 19:30:59 +08:00 |
|
Syngnat
|
4d42ce746c
|
✨ feat(nacos): 完善分组服务发现交互
- 在服务发现树中按 Group 展示入口并向工作台传递初始筛选
- 统一解析分组服务名并在列表中展示服务与所属 Group
- 防止快速切换服务时旧实例响应覆盖当前选择
- 服务增删后刷新对应命名空间的侧栏分组并保护强制刷新顺序
- 补充服务路由、分组菜单、侧栏刷新和实例竞态测试
|
2026-07-28 19:23:07 +08:00 |
|
mango
|
7aaf36ac2c
|
🐛 fix: 修复 Issue #762 (Closes #762)
|
2026-07-28 19:01:39 +08:00 |
|
mango
|
3e933358e6
|
🐛 fix: 修复 Issue #763 (Closes #763)
|
2026-07-28 18:30:23 +08:00 |
|
mango
|
30d6257b04
|
🐛 fix: 修复 Issue #764 (Closes #764)
|
2026-07-28 18:16:32 +08:00 |
|
mango
|
a37dc1c469
|
🐛 fix(test): 修复前端基线测试断言
|
2026-07-28 17:48:31 +08:00 |
|
mango
|
67198e5a9c
|
🐛 fix: 修复 Issue #753 (Closes #753)
|
2026-07-28 17:31:32 +08:00 |
|
Syngnat
|
0f78637ea3
|
🐛 fix(bindings): 修复 Nacos 模型类边界
- 恢复 StartSecurityUpdateRequest 的完整类定义
- 将 Nacos 模型声明保持在 app 命名空间层级
- 通过干净依赖安装、前端生产构建和 TypeScript 检查
|
2026-07-28 16:38:09 +08:00 |
|
Syngnat
|
6fc11c4c8b
|
🐛 fix(redis): 修复字段弹窗旧值与缩放布局
- 打开字段和列表项时同步初始化编辑值
- 重建并受控更新 Monaco 模型避免沿用上次内容
- 调整编辑弹窗为弹性布局并随窗口缩放填充
- 统一 V2 弹窗外壳与编辑器背景样式
|
2026-07-28 16:01:02 +08:00 |
|
Syngnat
|
d3fabe29d4
|
🐛 fix(theme): 统一 Monaco 与通用弹窗主题细节
- 统一 Monaco 编辑器背景变量并避免全局主题相互污染
- 为自定义主题补充编辑器表面变量及兼容处理
- 区分 DataGrid 数据编辑器与 SQL 定义编辑器字号
- 修复 V2 输入框重复边框和弹窗关闭按钮错位
- 支持可缩放弹窗内容及 Monaco 编辑器自适应填充
|
2026-07-28 16:00:24 +08:00 |
|
Syngnat
|
cef273f228
|
✨ feat(nacos): 新增 Nacos 数据源管理能力
- 支持 Nacos 连接测试及多命名空间资源树
- 提供配置搜索、发布、删除、历史回滚和变更监听
- 增加 Beta 发布、配置导入导出与批量操作
- 支持服务发现、实例管理、只读保护和多语言界面
- 补充 Wails 接口绑定及前后端回归测试
Refs #756
|
2026-07-28 15:58:22 +08:00 |
|
Syngnat
|
0674216d53
|
🐛 fix(sidebar): 将 PostgreSQL 分区表归入主表
- 读取 PostgreSQL 分区父子关系并隐藏分区主表行数
- 在主表下增加 Partitions 分组并保留分区表操作能力
- 兼容多级分区、跨 schema 显隐及异常元数据
- 补充分区树接入测试与多语言文案
Refs #750
|
2026-07-28 13:58:56 +08:00 |
|
Syngnat
|
19bb9d633b
|
🐛 fix(data-grid): 刷新总数后跳转尾页
- 为表数据视图增加独立尾页刷新回调
- 按当前筛选条件执行精确 COUNT 后计算最新页码与偏移
- 丢弃过期计数请求并在计数失败时停止旧尾页查询
- 覆盖数据增减、并发翻页和兼容回退测试
Refs #706
|
2026-07-28 11:31:37 +08:00 |
|
Syngnat
|
33ddee28ff
|
🐛 fix(sidebar): 修复表名快捷复制
- 为表节点菜单绑定 macOS Command+C 与 Windows/Linux Ctrl+C
- 使用捕获阶段处理快捷键并复制当前菜单表名
- 增加平台映射、非法组合和最新节点回归测试
Refs #736
|
2026-07-28 11:31:14 +08:00 |
|
Syngnat
|
c39fa3e8fe
|
🐛 fix(window): 遵循启动最大化偏好并恢复窗口尺寸
- 原生窗口统一以普通状态启动,避免关闭偏好后仍被强制最大化
- 关闭偏好时恢复持久化尺寸与位置,并阻止启动瞬态覆盖窗口数据
- Windows、Linux 与 macOS 开启偏好时统一使用窗口最大化
- 更新启动窗口文案与跨平台回归测试
Refs #703
|
2026-07-28 10:43:06 +08:00 |
|
Syngnat
|
3156d8df7f
|
🐛 fix(update): 恢复检查更新按钮加载动效
- 为设置中心加载图标恢复持续旋转
- 保留其他界面的减少动态效果策略
- 补充 reduced-motion 样式回归测试
|
2026-07-28 09:55:48 +08:00 |
|
Syngnat
|
861d4ace3f
|
🐛 fix(redis): 将 Key 搜索调整为前缀匹配
- 移除搜索 pattern 的前导通配符,避免中段 Key 误命中
- 将搜索模式和六语言文案由模糊统一为前缀
- 更新模式生成与命名空间筛选回归测试
|
2026-07-28 09:42:12 +08:00 |
|
Syngnat
|
c192b6cc3a
|
🐛 fix(dameng): 修复索引元数据查询与错误提示
修正 ALL_IND_COLUMNS 与 ALL_INDEXES 的索引归属关联;保留复合索引顺序、唯一性与索引类型元数据;索引加载失败时显示错误,并补齐回归测试和多语言文案。
Fixes #735
|
2026-07-27 22:57:50 +08:00 |
|
Syngnat
|
8ed3fb9413
|
Merge remote-tracking branch 'origin/dev' into dev
|
2026-07-27 22:33:41 +08:00 |
|
Syngnat
|
3b70fcc9c8
|
fix: 为检查更新按钮添加加载状态 (#748)
- 在更新管理 hook 中暴露检查更新中的 loading 状态
- 检查更新请求结束后统一复位 loading 状态
- 关于页检查更新按钮接入 loading 动画
- 补充测试覆盖检查中的 pending 状态
Fixes #730
|
2026-07-27 22:24:13 +08:00 |
|
Syngnat
|
92001b7fe9
|
✨ feat(sidebar): 支持侧边栏宽度随拖动实时调整 (#747)
## 背景
现有侧边栏拖拽过程中只移动一条 ghost 指示线,真正的侧边栏宽度要到 mouseup 或 blur
时才写入,因此左侧连接区域和右侧查询工作区不会随鼠标即时变化。
Closes #721
## 主要变更
- 使用 requestAnimationFrame 合并 mousemove,在每帧通过 Sider CSS
宽度变量实时更新侧边栏与工作区布局
- 保留拖动期间禁用 Ant Design width transition 的机制,避免额外动画造成滞后
- Store 宽度仍只在拖动结束时提交一次,避免每帧触发 React 重渲染和配置持久化
- 提交后保留实时宽度覆盖两帧,等待 React 绘制最终宽度后再清理,避免交接闪动
- 移除不再需要的侧边栏 ghost 指示线
- 补充实时预览、最终提交、blur、自愈和卸载清理测试
## 影响范围
- Legacy 与 V2 主侧边栏共用该实时拖拽行为
- 不改变侧边栏最小/最大宽度、折叠行为和持久化格式
- 不影响日志面板、AI 面板、Redis 面板等独立分隔条
## 验证
- 侧边栏及相关布局测试通过:10/10
- TypeScript 类型检查通过
- Vite 生产构建通过,仅有项目现有 chunk-size warning
|
2026-07-27 22:19:57 +08:00 |
|
liuqiufeng
|
c4d172030e
|
fix: 为检查更新按钮添加加载状态
- 在更新管理 hook 中暴露检查更新中的 loading 状态
- 检查更新请求结束后统一复位 loading 状态
- 关于页检查更新按钮接入 loading 动画
- 补充测试覆盖检查中的 pending 状态
Fixes #730
|
2026-07-27 22:09:20 +08:00 |
|
AutumnNazi
|
cebf256a44
|
✨ feat(sidebar): 支持侧边栏宽度随拖动实时调整
- 使用 CSS 宽度变量与 RAF 实时更新侧边栏及工作区布局
- 仅在拖动结束后持久化最终宽度,避免每帧触发 Store 重渲染
- 移除侧边栏 ghost 指示线并补充交互清理回归测试
|
2026-07-27 21:40:21 +08:00 |
|
Syngnat
|
32eed103a4
|
✨ feat(redis): 支持按命名空间快速模糊筛选
- 为 Redis Key 目录增加完整路径快捷筛选入口
- 自动回填搜索框并切换到模糊匹配模式
- 补齐多语言文案、无障碍标签和交互回归测试
Fixes #692
|
2026-07-27 21:21:21 +08:00 |
|
AutumnNazi
|
df87e50b33
|
🐛 fix(query-editor): 修复 SQL 美化后横向视口偏移
- SQL 格式化完成后重置 Monaco 横向滚动位置
- 保留格式化内容、选区、纵向滚动与撤销行为
- 补充超长单行 SQL 非自动换行场景回归测试
|
2026-07-27 21:10:04 +08:00 |
|