Syngnat
|
01a7a6cbf0
|
🐛 fix(sqlserver): 避免 DDL 查看伪成功 (#890)
## 背景与问题
SQL Server 的 GetCreateStatement 会返回未支持的占位注释且不返回错误,调用方会将其视为成功 DDL。
Closes #882
## 变更点
- 原生 SQL Server DDL 不可用时返回明确、本地化的 unsupported 错误。
- 让既有 DDL fallback 使用字段和索引元数据生成可执行的 CREATE TABLE。
- 补充 SQL Server 原生错误和 fallback 控制流回归测试。
- 补齐六种语言的错误提示。
## 影响范围
- SQL Server DDL 查看不再显示伪成功的占位注释。
- 元数据可读取时,DDL 视图将展示 fallback 生成的表定义、主键、默认值和索引。
- 若 fallback 元数据读取失败,既有 UI 将展示后端错误。
## 验证方式
` ext
go test -tags gonavi_sqlserver_driver ./internal/db -run
TestSQLServerMetadataErrorsUseCurrentLanguage -count=1
go test ./internal/app -run
TestResolveCreateStatementWithFallback_SQLServerBuildsFallbackDDL
-count=1
go test ./shared/i18n -run Test -count=1
`
## 风险与回滚
未涉及数据库迁移或构建链路。没有真实 SQL Server Driver Agent
环境,真实服务端元数据兼容性仍待补充验证;如需回滚可直接回滚本 PR。
|
2026-08-09 15:56:57 +08:00 |
|
Syngnat
|
545ff37f6c
|
🐛 fix(rabbitmq): 避免字段元数据读取队列消息 (#889)
## 背景与问题
RabbitMQ 的 GetColumns 为推断 Payload 动态字段,会调用队列 /get 接口并使用
ck_requeue_true。该操作会实际读取并重新投递消息,使本应只读的字段元数据读取产生 Broker 副作用。
Closes #881
## 变更点
- GetColumns 仅返回 RabbitMQ 静态消息字段,不再读取队列样本消息。
- 保留 SELECT 查询的消息预览逻辑。
- 增加回归断言,确保普通字段元数据读取不会请求 /api/queues/{vhost}/{queue}/get。
## 影响范围
- 字段元数据和全库字段搜索不再触碰真实队列消息。
- payload.*、headers.*、properties.* 等样本推断字段不再自动出现在元数据中;项目当前没有显式样本读取入口。
## 验证方式
` ext
go test ./internal/db -run RabbitMQ -count=1
`
## 风险与回滚
不涉及数据迁移或构建链路。若需要恢复隐式动态字段推断,可回滚本 PR。
|
2026-08-09 15:56:54 +08:00 |
|
mango
|
bb882faac7
|
🐛 fix(sync): 明确未迁移索引并提供补救 DDL (#885)
Fixes #885
|
2026-08-09 15:49:18 +08:00 |
|
mango
|
f887deb44c
|
🐛 fix(rocketmq): 支持经隧道访问隔离网络 (#886)
Fixes #886
|
2026-08-09 14:22:41 +08:00 |
|
Syngnat
|
bf5a1b7681
|
🎨 style(context-menu): 统一工作台右键菜单视觉规范
- 复用表对象菜单的上下文标题、功能分组与快捷键布局
- 统一查询标签、结果标签、工具栏、顶栏、Redis 与 Monaco 菜单
- 补充菜单结构、交互和视觉规范回归测试
Refs #879
|
2026-08-09 14:11:23 +08:00 |
|
Syngnat
|
0a238c551c
|
✨ feat(connection): 支持新建连接数据源置顶
- 新增数据源类型置顶与取消置顶交互
- 按个人置顶顺序优先展示并持久化偏好
- 完善主题样式、无障碍标签与六语言文案
- 补充排序、持久化及图钉视觉回归测试
Refs #876
|
2026-08-09 14:11:23 +08:00 |
|
Kunghim
|
664c7a05d3
|
Merge remote-tracking branch 'upstream/dev' into fix/882-sqlserver-ddl-unsupported
|
2026-08-09 13:33:05 +08:00 |
|
Kunghim
|
52488cf3f7
|
🐛 fix(sqlserver): 避免 DDL 查看伪成功
|
2026-08-09 13:32:51 +08:00 |
|
mango
|
f74ebb05a5
|
🐛 fix(mongodb): 支持 SRV 连接使用 SSH 隧道 (#887)
Fixes #887
|
2026-08-09 13:23:27 +08:00 |
|
Kunghim
|
93fbb013e5
|
🐛 fix(rabbitmq): 避免字段元数据读取队列消息
|
2026-08-09 12:54:51 +08:00 |
|
Syngnat
|
16a601e6a4
|
✨ feat(data-import): 完善导入工作台与任务交互
- 表导入与数据库导入统一提供遇错停止和继续策略,并跟随主题变量
- 增加能力校验、高级解析选项、字节进度、停止状态与持久任务历史
- 防止重复启动和运行中面板卸载,完善六语言语句统计及回归测试
|
2026-08-08 20:51:59 +08:00 |
|
Syngnat
|
20d5255eb4
|
🔧 chore(wails): 同步导入与数据同步接口绑定
- 更新导入能力、文件选项、任务历史与错误行导出绑定
- 保留数据同步任务、审批与检查点接口的生成模型
- 同步前端依赖校验值并校验 JS/TypeScript 契约
|
2026-08-08 20:51:37 +08:00 |
|
Syngnat
|
390a249105
|
✨ feat(data-import): 重构大文件导入与安全任务运行时
- SQL、CSV、JSON 与 XLSX 改为资源受限的流式解析,并支持压缩、编码和方言预检
- 增加遇错停止/继续策略、持久任务、错误行导出、源文件身份与安全取消
- 为数据库驱动补齐上下文事务和写入结果未知语义,避免失败重放与脏会话复用
|
2026-08-08 20:51:23 +08:00 |
|
Syngnat
|
4df879ccde
|
✨ feat(sync): 按数据源组合约束迁移能力
- 展示源端到目标端的完整、部分、规划中和不支持状态
- 按能力控制自动建表、补列、索引及继续执行入口
- 支持数据库列表为空时手工输入并补齐六语言提示
|
2026-08-08 19:34:36 +08:00 |
|
Syngnat
|
f15b630e70
|
✅ test(i18n): 支持数据同步局部词典解析校验
- 为功能局部词典注册明确的源码作用域
- 局部调用仅允许命中自身词典并保留拼写错误检测
- 避免将 DataSync 文案误判为全局六语言缺失
|
2026-08-08 19:29:53 +08:00 |
|
Syngnat
|
4c04609df2
|
✨ feat(data-sync): 新增多对象迁移与同步任务工作台
- 以五步流程组织端点、对象、写入、运行方式和预检
- 支持批量选表、同名目标匹配、字段映射与主键识别
- 完善生命周期、运行记录、CDC、错误行和响应式交互
|
2026-08-08 19:29:29 +08:00 |
|
Syngnat
|
53dde950fd
|
✨ feat(data-sync): 建立同步任务模型与运行网关
- 定义任务、映射、调度、预检和运行记录前端模型
- 接入 Wails 元数据、审批、生命周期、检查点与错误行 API
- 严格解码后端协议并补齐模型和网关回归测试
|
2026-08-08 19:26:57 +08:00 |
|
Syngnat
|
11dbb1f9dd
|
✨ feat(sync): 接入同步任务编排与安全执行 API
- 接入任务持久化、生命周期、调度运行与检查点管理
- 提供 ID 作用域元数据、能力解析、预检和生产审批接口
- 串联水位与 MongoDB CDC 执行、错误行隔离及安全重放
|
2026-08-08 19:13:25 +08:00 |
|
Syngnat
|
23c40c36c4
|
🐛 fix(connection): 隔离保存连接中的扩展密钥
- 将 JVM 凭据与敏感连接参数拆入密钥存储
- 公共和编辑连接视图仅返回脱敏值与存在标记
- 完善连接包迁移、显式清除和密钥往返测试
|
2026-08-08 19:10:51 +08:00 |
|
Syngnat
|
bc02a4c614
|
✨ feat(syncjob): 新增可恢复的数据同步任务运行时
- 持久化任务、运行、事件、检查点与错误行状态
- 支持调度、暂停取消、恢复重试、并发限制和故障接管
- 增加执行 fencing、连续失败退避与错误行重放租约
|
2026-08-08 19:06:57 +08:00 |
|
Syngnat
|
e40cdbc016
|
✨ feat(synccdc): 新增 MongoDB 变更流适配器
- 建立 CDC 适配器注册、探测与安全游标契约
- 支持 MongoDB change stream、恢复令牌和批量读取
- 覆盖权限探测、取消关闭与流位置恢复测试
|
2026-08-08 19:06:36 +08:00 |
|
Syngnat
|
c91a1555a4
|
✨ feat(sync): 完善跨数据源迁移与增量同步内核
- 增加迁移能力矩阵、对象字段映射与安全预检守卫
- 支持批大小、行错误隔离、水位增量和变更事件重放
- 复用 CDC 目标会话并补齐分页、投影与增量同步测试
|
2026-08-08 19:06:12 +08:00 |
|
Syngnat
|
a9595f6fb0
|
🐛 fix(sidebar): 优化 Host 拖入分组的命中与反馈
- 扩大分组中心放入热区并保留边缘排序
- 增加整行目标高亮、紧凑预览与悬停展开
- 覆盖拖拽意图、DOM 命中和移动目标回归
Refs #877
|
2026-08-08 12:31:21 +08:00 |
|
AutumnNazi
|
9e661958fe
|
🐛 fix(sync): 禁止仅同步数据时修改表结构 (#878)
Fixes #878
|
2026-08-08 07:22:42 +08:00 |
|
Syngnat
|
14f24925ab
|
🐛 fix(query-editor): 支持 PostgreSQL 查询选择 Schema
- 在查询工具栏加载并持久化 PostgreSQL Schema
- 将选择的 Schema 安全注入 search_path,并保留显式连接配置
- 绑定事务、结果与元数据执行上下文,避免跨 Schema 误查询或写入
- 补充查询、DataGrid、独立窗口及差异比较回归测试
Refs #864
|
2026-08-07 23:25:25 +08:00 |
|
virgosgod-maker
|
85439eb8de
|
✨ feat(query): 新建查询继承当前表上下文 (#874)
## 变更说明
- 当前活动标签为表数据页或表设计页时,新建查询会自动继承连接、数据库和表名上下文
- 按数据库方言正确引用表名,并为 Elasticsearch 生成原生查询模板
- 只有活动表与用户最新选择的连接、数据库一致时,才继承表名,避免跨数据库误带旧表上下文
- 无有效表上下文时保持原有新建查询行为
- 自定义模板仅在以 FROM 结尾、存在明确表名插入点时自动补全,避免破坏用户模板
## 验证
- `npm test -- src/components/QueryEditor.external-sql-save.test.tsx
src/utils/newQueryContext.test.ts
src/utils/objectQueryTemplates.test.ts`:344 项测试通过
- `npm run build`:TypeScript 与 Vite 生产构建通过
- 已基于最新 `dev`(包含 #872/#870/#875)解决 `App.tsx` 冲突
Closes #849
|
2026-08-07 22:03:18 +08:00 |
|
mango
|
4acf16893f
|
fix(query): preserve selected new query context
|
2026-08-07 21:58:53 +08:00 |
|
mango
|
0e2a28039e
|
Merge origin/dev into pull request 874
|
2026-08-07 21:50:01 +08:00 |
|
virgosgod-maker
|
0810fed618
|
🐛 fix(query-editor): 修复右键菜单无法粘贴内容 (#875)
## 背景
Issue #873 中,Windows 安装包内的 SQL 编辑器通过右键菜单执行“粘贴”时,浏览器剪贴板 API 会受到 WebView
权限限制,导致 Monaco 无法取得剪贴板内容。
## 变更点
- 在 Wails 运行环境中覆盖 Monaco 的粘贴命令,优先读取 Wails 原生剪贴板
- 将原生剪贴板文本交回 Monaco 的 paste handler,保留选区、多光标和撤销行为
- 使用引用计数管理全局命令生命周期,并保留浏览器剪贴板回退
- 增加原生读取、浏览器回退、多编辑器卸载及只读编辑器回归测试
## 影响范围
- 仅影响 Wails 环境下 SQL 编辑器的右键粘贴
- 普通浏览器环境继续使用 Monaco 默认粘贴逻辑
- 不涉及后端接口、配置、依赖或生成文件变更
## 验证
- 定向单元测试:14/14 通过
- TypeScript 类型检查通过
- 前端生产构建通过(7981 modules transformed)
- Wails runtime 实际验证右键粘贴可插入剪贴板文本
- 前端全量测试中 3 个测试文件因并发资源争用超时,隔离重跑 131/131 通过
Closes #873
|
2026-08-07 21:45:05 +08:00 |
|
virgosgod-maker
|
b085d01ba9
|
✨ feat(query): 支持拖拽结果字段插入 SQL (#870)
## 变更说明
- 支持将查询结果集字段拖入 SQL 编辑器,并按光标位置、选区和字段上下文生成插入文本
- 复用同一次表头拖拽完成结果集内部列排序,不影响字段拖入查询区
- 使用结果集作用域隔离列排序,避免跨结果集误重排
- 鼠标使用原生 HTML 拖放,触摸和触控笔保留 dnd-kit PointerSensor 排序能力
## 测试
- `npm test -- sqlFieldDrop.test.ts dataGridColumnOrder.test.ts`(19
个测试通过)
- `npm run build`
- Windows Wails 桌面端手动验证:结果集列排序、字段拖入查询区
Closes #848
|
2026-08-07 21:45:02 +08:00 |
|
virgosgod-maker
|
8af55f35cd
|
🐛 fix(query-editor): 修复新建查询数据库上下文错误 (#872)
## 背景与问题
选中数据库 A 新建查询后,再从侧边栏选中数据库 B 创建查询,旧查询 Tab 的数据库 A 会错误覆盖当前侧边栏选择。
## 变更点
- 新建查询优先使用侧边栏当前选中的连接和数据库
- 仅选择连接时保持数据库为空,不再在数据库列表加载后自动选库
- 手动切换数据库后同步查询 Tab 上下文并刷新 SQL 补全元数据
- 增加新建查询上下文及多 Tab 补全回归测试
## 影响范围
仅影响 SQL 查询 Tab 的新建上下文、数据库选择和补全元数据切换,不改变查询执行与数据源连接逻辑。
## 验证方式
- 相关测试:325 项通过
- 生产构建:通过
Fixes #865
|
2026-08-07 21:35:00 +08:00 |
|
mango
|
fc038b73a5
|
fix(query-editor): scope native clipboard paste
|
2026-08-07 21:16:00 +08:00 |
|
mango
|
6de2304531
|
fix(data-grid): handle update clause boundaries
|
2026-08-07 21:15:59 +08:00 |
|
mango
|
5a0d167a21
|
fix(query): sync toolbar connection context
|
2026-08-07 21:15:59 +08:00 |
|
mango
|
6115bae2c3
|
🐛 fix(data-grid): 点击行号选中并取消行悬浮加深 (#871)
Fixes #871
|
2026-08-07 20:00:53 +08:00 |
|
mango
|
303cb5cc79
|
🐛 fix(update): 启动时获取最新开发版更新 (#866)
Fixes #866
|
2026-08-07 19:48:43 +08:00 |
|
Syngnat
|
d7f1297a48
|
🌐 i18n: 统一显示隐藏字段列文案(6 语言)
- 将字段显示入口明确为显示/隐藏字段列
- 同步简中、繁中、英语、日语、德语和俄语文案
- 更新 DataGrid 布局与图标按钮断言
|
2026-08-07 17:59:42 +08:00 |
|
AutumnNazi
|
ebd08de6cf
|
🐛 fix(query-editor): 修复右键菜单无法粘贴内容
- 在 Wails 环境使用原生剪贴板读取 Monaco 粘贴内容
- 复用 Monaco 粘贴处理器保留选区、多光标和撤销行为
- 增加原生回退、引用计数及只读编辑器回归测试
|
2026-08-07 17:14:31 +08:00 |
|
kunghim
|
e1bc2839c5
|
✨ feat(query): 新建查询继承当前表上下文
|
2026-08-07 16:45:31 +08:00 |
|
AutumnNazi
|
b765b22fce
|
🐛 fix(query-editor): 修复新建查询数据库上下文错误
|
2026-08-07 15:47:14 +08:00 |
|
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 |
|
Syngnat
|
fdb73e1f83
|
🐛 fix(workbench): 最近连接返回资源树
- 点击最近连接改为定位并选中侧栏连接或数据库
- 等待连接数据库加载完成后再恢复目标数据库选择
- 保留 Redis、Nacos 等非查询数据源的最近连接入口
- 外部 SQL 目录仍按原行为创建查询标签页
- 增加最近连接与侧栏定位事件回归测试
|
2026-08-07 15:22:32 +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
|
f02df7c87d
|
🔧 chore(frontend): 同步前端安装校验元数据
- 标记 package-lock 中已有的安装脚本\n- 更新 package.json 的 MD5 校验值\n- 不调整依赖版本或依赖树
|
2026-08-07 11:44:07 +08:00 |
|
Syngnat
|
6042f13d60
|
📝 docs(readme): 添加官网入口
- 在英文 README 导航区增加 GoNavi 官网链接\n- 在中文 README 导航区增加官网入口\n- 保持下载与快速开始导航顺序不变
|
2026-08-07 11:43:11 +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 |
|