Syngnat
|
c7cf9526de
|
🐛 fix(security): 修复 macOS 无法打开应用及三平台依赖系统钥匙串的问题
- 密文存储:新增 dailysecret 本地存储引擎,连接/代理/AI 密钥不再依赖系统钥匙串
- 启动迁移:自动将已有钥匙串密文迁移到本地 JSON,用户无感知
- WebKit 迁移:从旧版 Wails WebKit LocalStorage 中恢复连接与代理数据
- DMG 修复:移除 --sandbox-safe 避免扩展属性污染签名,新增 xattr 清理与签名校验
- 安全适配:钥匙串不可用时标记完成而非回滚,消除无钥匙串环境下的阻塞
- 出口脱敏:所有连接/代理 API 返回前统一 sanitize 防止密文泄漏
|
2026-04-13 12:40:25 +08:00 |
|
Syngnat
|
604aaad69d
|
合并拉取请求 #366
fix(sidebar): normalize mysql view names (#365)
|
2026-04-13 10:35:00 +08:00 |
|
jonclex
|
605e266eab
|
fix(sidebar): normalize mysql view names (#365)
|
2026-04-13 10:25:03 +08:00 |
|
辣条
|
2569a3779a
|
✨ feat(connection-package): 支持连接恢复包双模式加密导入导出 (#361)
## 变更说明
- 为连接恢复包新增 v2 双模式加密导入导出
- 默认使用应用内置密钥加密 secrets 字段,无需用户输入文件密码
- 可选增加文件保护密码,形成双层加密
- 保留 v1 导入兼容,并兼容 legacy JSON 明文导入
- 前端新增 v2 格式识别与导出弹窗选项适配
- 合并过程中已处理与最新 dev 的冲突,确保现有安全更新链路不被破坏
## 回归验证
- `go test -count=1 ./...`
- `npm test`
- `npm run build`
- `wails build -platform windows/amd64 -clean -o
GoNavi-windows-amd64-test -ldflags "-s -w -X
GoNavi-Wails/internal/app.AppVersion=dev-d150780-merge-test"`
## 人工验证
- 明文配置导入通过
- v2 无文件密码导出后可直接导入
- v2 带文件密码导出后需密码导入
- 导入旧版恢复包与 legacy JSON 均正常
## 备注
- 本 PR 基于最新 `dev` 进行冲突整合
|
2026-04-12 12:48:47 +08:00 |
|
Syngnat
|
bb6271246b
|
🐛 fix(mac): 禁用正式包默认窗口诊断以规避启动无窗体问题
- 将 macOS 原生窗口诊断改为默认关闭
- 仅在显式设置 GONAVI_ENABLE_MAC_WINDOW_DIAGNOSTICS 时启用后端诊断
- 仅在前端开发环境启用窗口诊断采集
- 避免正式构建在启动阶段附加额外窗口状态探测与日志观察
- 为诊断开关补充前后端最小回归测试
Refs: #360
|
2026-04-12 12:46:15 +08:00 |
|
Syngnat
|
8e0d1b0a80
|
📝 docs(contributing): 修正 dev 分支贡献流程说明
- 修正文档中的默认分支与集成分支描述
- 调整贡献分支创建基线为 dev
- 调整外部 Pull Request 目标分支为 dev
- 同步 README 中英文贡献说明
- 更新 release 后 main 回流 dev 的维护说明
Refs: #352
|
2026-04-12 12:34:50 +08:00 |
|
tianqijiuyun-latiao
|
d150780879
|
Merge branch 'feature/20260408_security-update' into merge/feature-20260408-security-update-onto-dev
# Conflicts:
# frontend/src/App.tsx
# frontend/wailsjs/go/app/App.d.ts
# frontend/wailsjs/go/app/App.js
|
2026-04-12 09:40:28 +08:00 |
|
tianqijiuyun-latiao
|
52d2ee7592
|
✨ feat(connection-package): 支持连接恢复包双模式加密导入导出
- 新增 v2 连接恢复包 appKey 与文件密码双模式加密链路
- 扩展前后端导入导出流程并兼容 v1 与 legacy 格式
- 修复无文件密码恢复包导入误弹密码框导致的流程阻塞
|
2026-04-11 23:51:43 +08:00 |
|
Syngnat
|
2410aad849
|
✨ feat(table): 支持截断表与清空表操作
Fixes #351
|
2026-04-11 22:53:04 +08:00 |
|
Syngnat
|
33b21cc5ee
|
🐛 fix(driver): 兼容跨平台 Go 路径回退测试
|
2026-04-11 22:36:21 +08:00 |
|
Syngnat
|
1a0ba9a499
|
🐛 fix(sidebar): 避免默认显示横向滚动条
Fixes #329
|
2026-04-11 22:27:26 +08:00 |
|
Syngnat
|
7a2563b83b
|
✨ feat(data-grid): 支持拖选单元格直接复制到剪贴板
Fixes #322
|
2026-04-11 22:10:48 +08:00 |
|
Syngnat
|
632e57ea60
|
✨ feat(data-grid): 支持双击列边界自适应宽度
Fixes #330
|
2026-04-11 22:05:53 +08:00 |
|
Syngnat
|
ca76440981
|
🐛 fix(connection): 收紧稳定期数据库连接自动重试
Fixes #331
|
2026-04-11 21:58:16 +08:00 |
|
Syngnat
|
af5e84213f
|
🐛 fix(driver): 扩展 TDengine 历史版本选择范围
Fixes #325
|
2026-04-11 21:53:53 +08:00 |
|
Syngnat
|
fcade0f860
|
✨ feat(sidebar): 支持窄侧栏横向滚动查看
Fixes #329
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
1c2377bc62
|
🐛 fix(driver): 修复达梦驱动安装误走无效直链
Fixes #320
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
426ef3bcf6
|
🐛 fix(update): 修复 Windows 更新脚本安装失败
Fixes #328
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
fb500ee33b
|
🐛 fix(mysql): 回退当前数据库列表查询
Fixes #327
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
89d79ff10c
|
🐛 fix(mysql): 修复 bit 列写入归一化
Fixes #318
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
aa1bb5b886
|
🐛 fix(kingbase): 回退当前数据库元数据查询
Fixes #316
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
5038ae5c9b
|
🐛 fix(window): 修复 Windows 恢复焦点后界面缩放异常
Fixes #315
|
2026-04-11 21:53:52 +08:00 |
|
Syngnat
|
83fe3d4ed9
|
🐛 fix(driver): 提升批量 INSERT 执行效率
Fixes #311
|
2026-04-11 21:53:51 +08:00 |
|
Syngnat
|
808c773134
|
✨ feat(table-overview): 优化库内表概览为逐行展示
Fixes #310
|
2026-04-11 21:53:51 +08:00 |
|
Syngnat
|
5d86ee7c76
|
🐛 fix(clickhouse): 获取数据库列表失败时回退当前库
Fixes #308
|
2026-04-11 21:53:51 +08:00 |
|
Syngnat
|
8297829be6
|
✨ feat(driver): 增加驱动目录直达入口与手动导入提示
Fixes #306
|
2026-04-11 21:53:51 +08:00 |
|
Syngnat
|
f696f52470
|
🐛 fix(table-designer): 修复金仓新增字段保存失败
Fixes #305
|
2026-04-11 21:53:51 +08:00 |
|
Syngnat
|
60b63d7a22
|
✨ feat(icon): 补充 SQL Server 数据库图标
Fixes #287
|
2026-04-11 21:53:50 +08:00 |
|
Syngnat
|
1f617f9d53
|
✨ feat(storage): 支持自定义数据目录与显式迁移
Fixes #242
|
2026-04-11 21:53:50 +08:00 |
|
tianqijiuyun-latiao
|
1751e14d20
|
🐛 fix(security): 修复安全更新重检卡死与 Redis 密文兼容
|
2026-04-11 20:12:23 +08:00 |
|
tianqijiuyun-latiao
|
82e06bd94d
|
🐛 fix(security): 完善密文升级导入覆盖与安全更新链路
- 完善连接恢复包与 legacy 导入覆盖语义及密文兼容处理
- 修复安全更新详情高亮反馈与相关前后端链路
- 补强 keyring 误判边界与安全更新回归测试
|
2026-04-11 16:53:03 +08:00 |
|
DurianPankek
|
c810d999bd
|
Merge 803c33b306 into 0009c98c7e
|
2026-04-11 13:23:51 +08:00 |
|
folltoshe
|
0009c98c7e
|
feat(window): 在全屏状态下时隐藏圆角
|
2026-04-11 04:40:35 +08:00 |
|
tianqijiuyun-latiao
|
070ff72ad8
|
✨ feat(security): 完成密文升级与连接恢复包导入导出
|
2026-04-10 21:29:45 +08:00 |
|
DurianPankek
|
803c33b306
|
🐛 fix(window): 修复 mac 原生全屏下输入时窗口丢失
|
2026-04-10 19:43:15 +08:00 |
|
Syngnat
|
1d882d089f
|
🐛 fix(driver): 修复可选驱动构建时 Go PATH 检测误判 (#353)
## 背景
在 `dev-ac6ef06` 构建中,安装 SQL Server 等可选驱动时,GoNavi 在部分 macOS 环境会误报“当前环境未安装
Go”。
实际问题并非未安装 Go,而是应用从图形界面启动时没有继承终端中的 PATH,导致 `brew` 安装的 Go(如
`/opt/homebrew/bin/go`)无法被 `exec.LookPath("go")` 发现,进而阻塞可选驱动代理的本地构建流程。
材料参考:
<img width="2142" height="1460" alt="连接失败"
src="https://github.com/user-attachments/assets/0844cf97-5720-4677-a806-65e056fa9766"
/>
<img width="289" height="74" alt="image"
src="https://github.com/user-attachments/assets/3e98e482-f74d-4b68-8605-b712fbdb98c1"
/>
## 关键修改
- 为可选驱动源码构建新增 `go` 可执行文件解析逻辑,避免仅依赖当前进程 PATH
- 增加常见 Go 安装路径兜底:
- `/opt/homebrew/bin/go`
- `/usr/local/go/bin/go`
- `/usr/local/bin/go`
- 在常见路径未命中时,再回退到登录 shell 中执行 `command -v go`
- 解析 shell 输出时逐行筛选真实存在的路径,避免 shell 启动脚本输出额外提示导致误判
- 为 Go 探测逻辑补充单元测试,覆盖:
- shell 列表去重与顺序
- 常见路径回退
- shell 回退
- 噪音输出过滤
## 影响范围
- 仅影响可选驱动代理的源码构建阶段
- 不影响已内置驱动
- 不影响普通数据库连接、前端界面和其他业务逻辑
- 主要改善 macOS 图形界面启动应用时的 Go 环境探测兼容性
## 验证方式
已执行:
```bash
go test ./internal/app
```
## 修复效果
<img width="1114" height="784" alt="已连接1"
src="https://github.com/user-attachments/assets/72f4bb89-6c0b-4632-9098-3ce5b865e288"
/>
<img width="1032" height="791" alt="已连接2"
src="https://github.com/user-attachments/assets/6330cff2-c13b-4a9b-852d-8fc234819f81"
/>
## 验证点:
- 终端内已安装 Go 且可执行时,保持现有行为
- GUI 进程未继承 PATH 时,可通过常见目录或 shell 回退找到 Go
- shell 启动脚本存在额外输出时,仍可解析到真实 Go 路径
## 风险与回滚
### 风险:
- 仅新增本地命令探测与路径兜底逻辑,影响面较小
- 若用户使用非常规 Go 安装方式,仍可能需要后续补充手动指定 Go 路径的正式方案
### 回滚:
- 可直接回退本 PR 中 internal/app/methods_driver.go 与对应测试变更
## 备注
当前使用中还观察到“驱动下载链路域名不可达”在已有网络代理时可能出现误报,但该问题既不影响当前 PATH
修复的有效性,也并不阻塞下载,所以未纳入本次修改范围。
|
2026-04-09 17:17:15 +08:00 |
|
DurianPankek
|
19da7fc66c
|
🐛 fix(driver): improve Go PATH detection for optional driver builds
|
2026-04-09 16:16:22 +08:00 |
|
Syngnat
|
c1877ea013
|
🐛 fix(ci): 修复 dev-latest 历史 release 残留导致的重复发布问题
- 将 dev release 清理逻辑改为枚举所有历史 release
- 删除全部 tag_name=dev-latest 的 draft 与 prerelease 残留
- 避免只删除单个 release 时遗留旧的 Dev Build 页面项
- 保留后续 tag ref 清理与重新发布流程
- 确保 dev 发布前仓库中只保留一个有效的 dev-latest release
|
2026-04-09 13:34:41 +08:00 |
|
Syngnat
|
60dbb8a559
|
🐛 fix(ci): 修复 dev 预发布构建时间格式并收敛并发运行
- 为 dev-build workflow 增加同分支并发互斥配置
- 避免多个 dev 运行同时操作 dev-latest release
- 新增构建时间格式化步骤,将时间统一输出为 yyyy-MM-dd HH:mm:ss
- 将 release 文案中的构建时间改为引用格式化结果
- 保持现有 dev 版本号与 release/tag 清理逻辑不变
|
2026-04-09 13:31:01 +08:00 |
|
Syngnat
|
67fe3e3017
|
🐛 fix(ci): 修复 dev 预发布因重复 tag 导致的发布失败
- 将 dev-latest 预发布前的清理步骤改为 actions/github-script
- 显式按 GitHub API 删除已存在的 release 与 tags/dev-latest 引用
- 移除对未维护 delete-tag-and-release 动作的依赖
- 保持 dev-latest 固定预发布标签语义不变
- 避免 softprops/action-gh-release 在 finalizing release 阶段因 tag_name already_exists 失败
|
2026-04-09 12:30:13 +08:00 |
|
tianqijiuyun-latiao
|
1a042321d2
|
🐛 fix(connection): 修复失败连接高频重试并暂停后台自动元数据拉取 #331
- 后端为失败数据库连接增加冷却窗口,避免短时间内重复真实建连
- 补充失败冷却回归测试,覆盖重复失败、冷却后重试和成功后清理场景
- 前端在后台态暂停查询页、侧边栏和表概览的自动元数据拉取
- 保持手动刷新、手动展开等显式操作行为不变
|
2026-04-08 22:31:50 +08:00 |
|
Syngnat
|
35944d58f8
|
合并拉取请求 #344
🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题
|
2026-04-08 19:39:07 +08:00 |
|
DurianPankek
|
5c2509c37f
|
🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题
|
2026-04-08 19:11:18 +08:00 |
|
Syngnat
|
8e1b01b550
|
Revert "🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题 (#344)"
This reverts commit 29fa5eb6df.
|
2026-04-08 10:41:34 +08:00 |
|
Syngnat
|
29fa5eb6df
|
🐛 fix(connection-modal): 修复连接配置输入框自动首字母大写问题 (#344)
合并外部贡献者 DurianPancake 的 PR #344 修改(解决冲突后)。
主要改动:
- 新增 noAutoCapInputProps 常量,统一关闭 autoCapitalize/autoCorrect/spellCheck
- 在所有文本输入组件(Input/Input.Password/Input.TextArea)应用该属性
- 增加弹窗级 MutationObserver 兜底,对动态 DOM 元素补充禁用属性
影响范围: 仅前端连接配置弹窗内的文本输入行为,后端逻辑不变
|
2026-04-08 10:40:16 +08:00 |
|
Syngnat
|
7c6391af3d
|
⚡️ perf(ai-chat): 优化会话持久化序列化方式
- 序列化方式:AISaveSession 从 MarshalIndent 改为 Marshal
- 存储优化:移除不必要的缩进格式化,减少磁盘占用
- 性能提升:紧凑 JSON 序列化速度更快,减少内存分配
|
2026-04-08 10:30:51 +08:00 |
|
Syngnat
|
5746796bc2
|
🐛 fix(export): 修复导出时间时区误偏移 (#345)
## 背景
导出查询结果时,时间字段在部分场景出现错误时区偏移。典型表现为数据库中正确的本地时间在导出后被额外偏移(例如 +8 小时),影响
JSON/文本类导出的可用性与可信度。
## 变更内容
- 修复导出时间解析逻辑,区分“带时区时间字符串”和“无时区时间字符串”的处理方式:
- 带时区值按其时区语义解析;
- 无时区值按本地语义解析,避免误按 UTC 导致二次偏移。
- 统一导出时间格式化行为,避免在导出阶段再次进行不必要的时区换算,确保 `timestamp without time zone`
等场景保持原始钟表时间。
- 补充回归测试,覆盖以下关键路径:
- 无时区时间字符串导出不偏移;
- RFC3339 字符串解析后格式化行为稳定;
- `time.Time` 导出保持预期钟表时间;
- JSON 导出时间字段行为一致。
## 影响范围
- 主要影响导出链路中的时间字段格式化(CSV/JSON/MD/HTML/XLSX 对应后端写出逻辑)。
- 不涉及连接协议、SQL 执行流程和驱动安装机制。
## 验证方式
- 已通过:
- `go test ./internal/app`
- `go test -race ./internal/app`
- `go test ./...`
## 风险与说明
- 已确认并修复本次问题对应的导出时区偏移路径。
- 当前系统仍存在“基于值推断时间语义”的历史设计约束;这里的“元数据驱动”是指基于数据库列定义类型(如 `timestamp
with/without time zone`、`datetimeoffset` 等)来决定是否允许时区换算。
- 上述历史约束并非本次修改引入。后续建议按数据库类型矩阵(DB matrix)逐库适配元数据策略,以降低跨数据库兼容风险与误判风险。
## 相关截图
- 问题对比:问题1、问题2
<img width="419" height="170" alt="问题1"
src="https://github.com/user-attachments/assets/a4d9f949-1f5c-4dcc-b3fa-13082347fec3"
/>
<img width="736" height="130" alt="问题2"
src="https://github.com/user-attachments/assets/b1d5b9e4-7f79-4929-875c-a422d1fbe51b"
/>
---
- 修复后:修复1、修复2
<img width="548" height="130" alt="修复1"
src="https://github.com/user-attachments/assets/1ee0a91d-2dec-4060-9c8e-9817f437dae7"
/>
<img width="486" height="128" alt="修复2"
src="https://github.com/user-attachments/assets/baa8cb25-b08a-4f31-94d8-a4a50753fb97"
/>
|
2026-04-08 10:23:27 +08:00 |
|
DurianPankek
|
3ec7c9be9d
|
🐛 fix(export): 修复导出时间时区误偏移
|
2026-04-07 19:38:16 +08:00 |
|
辣条
|
ac6ef06413
|
feat(app): 合并配置密文存储、数据表增强与驱动相关修复 (#339)
## 背景
本次合并汇总了 5 类功能,并对冲突处理后的代码进行了回归审查,目标是将配置密文存储能力、数据表体验增强及驱动相关修复一并并入。
## 本次变更
1. 修复 Data Viewer 多列排序状态残留,避免排序条件切换后失效。
2. 收紧 MongoDB 可选驱动支持区间,仅支持 1.17.x 与 2.x,并补齐对应版本识别与导入校验。
3. 完成配置密文存储前后端闭环,包括:
- 新增密钥存储基础设施与状态枚举
- 拆分 AI Provider 元数据与密钥存储
- 暴露连接配置、代理配置相关密钥存储 API
- 前端状态迁移为不保存明文密钥
- 通过连接配置 ID 路由 RPC 配置
- 修复密文编辑与状态残留问题
4. 增强 DataGrid 显示能力,补充展示策略并支持行级 SQL 复制。
5. 修复本地驱动导入版本识别与数据库连接校验遗漏,补齐 ClickHouse 等相关校验路径。
## 附带修复
- 修复 Claude CLI 在 Windows 下的测试稳定性问题。
## 验证情况
- `go test ./...`
- `go build ./...`
- `npm test -- src/store.test.ts src/utils/dataGridDisplay.test.ts
src/components/dataGridCopyInsert.test.ts
src/utils/connectionRpcConfig.test.ts
src/utils/connectionSecretDraft.test.ts src/utils/
providerSecretDraft.test.ts src/utils/customConnectionDsn.test.ts
src/utils/aiProviderEditorState.test.ts
src/utils/browserMockConnections.test.ts
src/utils/dataViewerAutoFetch.test.ts`
- `npm run build`
## 说明
- 其他功能主要依据提交差异、代码检查与自动化测试完成回归确认。
- 当前未发现因冲突处理导致的明确编译问题、功能失效或目标偏离
|
2026-04-05 12:42:59 +08:00 |
|
tianqijiuyun-latiao
|
ac0b6c05e8
|
🐛 fix(database): 修复本地驱动导入版本识别与连接校验遗漏
- MongoDB 本地导入按所选版本解析目录与压缩包
- ClickHouse 连接测试补充 query path 校验
- 补充驱动版本与查询路径回归测试
|
2026-04-05 12:09:06 +08:00 |
|