Commit Graph

1642 Commits

Author SHA1 Message Date
Syngnat
e6f39d34d3 Merge remote-tracking branch 'origin/dev' into dev 2026-07-24 21:30:30 +08:00
Syngnat
ce9fdbebc7 🐛 fix(about): 移除关于页非必要滚动条 (#714)
## 背景

Issue #702 中,安装版在“已是最新版本”且页面内容可以完整展示时,关于页右侧仍会出现滚动条。原因是内容根节点额外的 18px
底部留白造成了临界溢出。

## 变更点

- 移除关于页内容根节点冗余的底部留白
- 保留详情容器原有的 `overflowY: auto`,仅在内容真实溢出时显示滚动条
- 补充设置中心布局回归断言,防止非必要底部留白再次引入

## 影响范围

- 仅影响设置中心“关于 GoNavi”页面的垂直布局
- 已是最新版本且内容可完整展示时不再出现滚动条
- 有可用更新并显示“本次更新包”等额外信息时,内容溢出仍可正常滚动
- 不修改更新检查、下载、安装或自动检查间隔逻辑
- 无后端、数据库、依赖或配置变更

## 验证

- `npm test -- --run App.settings-center.test.ts`:22/22 通过
- `npx tsc --noEmit --pretty false`:通过
- Playwright 运行时验证:最新安装版内容 591px / 容器 599px,无溢出;有更新时内容 624px / 容器
599px,保留 25px 可滚动区域
- `git diff --check origin/dev...HEAD`:通过

Closes #702
2026-07-24 21:29:46 +08:00
Syngnat
2f427d3baf 🐛 fix(tabs/query-editor): 优化标签圆角并修复搜索提示遮挡 (#713)
## 背景

Issue #695 希望统一右侧工作区标签的圆角样式。同时,查询页打开 Monaco
搜索后,顶部按钮的悬浮提示会被编辑器区域裁剪,影响操作提示阅读。

## 变更点

- 将 V2 工作区标签四角统一为 8px 圆角
- 使用尊重圆角边界的 inset 激活色,避免顶部绿色条遮住圆角或形成悬浮短条
- Monaco 查找组件可见时放开编辑器区域的浮层裁剪,保持搜索按钮及查找框位置不变
- 补充标签圆角和搜索提示显示的回归测试

## 影响范围

- 仅影响 V2 主工作区标签样式及查询编辑器查找浮层
- 不改变标签尺寸、间距、拖拽和关闭逻辑
- 不改变 Monaco 查找框位置,也不恢复顶部额外留白
- 无后端、数据库、依赖或配置变更

## 验证

- `npx vitest run src/components/TabManager.adaptive-width.test.ts`(7/7
通过)
- `npx vitest run src/components/QueryEditor.external-sql-save.test.tsx
-t "shows Monaco find button hovers without moving the find widget"`(1/1
通过)
- `npx tsc --noEmit`
- `npm run build`
- Playwright 实际页面验证标签圆角、激活色和 Monaco 搜索按钮 Tooltip

Closes #695
2026-07-24 21:29:42 +08:00
AutumnNazi
a6c83d9164 🐛 fix(about): 移除关于页非必要滚动条
- 移除关于页冗余底部留白,内容完整时不再触发滚动
- 保留内容溢出时的滚动能力并补充布局回归断言
2026-07-24 20:53:19 +08:00
AutumnNazi
82a0a02c56 🐛 fix(tabs/query-editor): 优化标签圆角并修复搜索提示遮挡
- 将 V2 工作区标签统一为四角圆角,并让激活色沿圆角自然显示
- 放开 Monaco 查找组件可见时的浮层裁剪,不改变按钮位置和顶部间距
- 补充标签圆角与查找提示显示的回归测试
2026-07-24 20:23:46 +08:00
Syngnat
cbca312a50 🐛 fix(sidebar): 将表置顶星标改为只读状态指示
- 仅为已置顶表展示非交互实心星标
- 保留右键菜单中的置顶与取消置顶入口
- 补充侧边栏置顶指示器回归测试
2026-07-24 20:20:23 +08:00
Syngnat
0c9e807674 ️ perf(sidebar): 消除左侧树拖拽改宽时的卡顿
- 拖拽与松手提交期间标记 data-sidebar-resizing,关闭 Sider 默认 transition
- 避免 Ant Design transition:all 带动工作台/DataGrid 连续 reflow
- 补充 resize 标记生命周期与 CSS 约束回归测试
2026-07-24 19:50:58 +08:00
Syngnat
e1bc65b788 feat(connection): 支持分组快捷新建与环境预设 (#712)
## 背景

Issue #698
希望在连接分组的右键菜单中直接新建连接,减少先创建再手动移动分组的操作。后续需求还需要为连接和分组增加环境预设,使生产、测试、开发和本地环境在侧栏与工作台中可辨识。

## 变更点

- 在 V2 与旧版侧栏的分组右键菜单中增加“新建连接”,保存成功后自动归入触发操作的分组
- 为连接和分组增加生产、测试、开发、本地四种环境预设,默认使用本地环境
- 在分组图标和连接相关 Tab 底部展示对应环境颜色,并由直接所属分组优先决定展示环境
- 将连接环境类型持久化到 connections.json,并支持连接包导入导出;旧数据或非法值兼容回落为本地环境
- 补充多语言文案、Wails 类型绑定和前后端回归测试

## 影响范围

- 影响新旧侧栏分组菜单、连接编辑弹窗、连接分组弹窗和连接相关 Tab 的环境标识
- 分组预设只覆盖其直属连接的展示环境,不会批量改写连接自身保存的预设类型
- environmentType 为可选兼容字段,不需要数据库迁移;旧连接和旧连接包可继续加载
- 未新增依赖,未修改构建链路;回滚时可直接回退本提交

## 验证

- npm run build
- npx tsc --noEmit
- 相关 Vitest:13 项通过(分组新建连接、连接/分组环境、Tab 环境标识、Store 持久化)
- Go 定向测试通过(连接持久化、旧数据兼容、连接包导入导出)
- go vet ./internal/app ./internal/connection
- 6 个 i18n JSON 文件解析通过,npm run i18n:scan 正常完成
- 完整组合测试中仍有 origin/dev 已存在的 3 条 TabManager 源码字符串断言失败及 1 条无关 Store
超时;本次新增用例均已单独通过

Closes #698
2026-07-24 19:16:30 +08:00
AutumnNazi
66531b6abd feat(connection): 支持分组快捷新建与环境预设
- 在新旧侧栏分组右键菜单中增加新建连接,并在保存后自动归入目标分组
- 为连接与分组增加生产、测试、开发和本地环境预设及颜色标识
- 持久化连接环境元数据,兼容旧数据与连接包导入导出
- 补充多语言文案及前后端回归测试
2026-07-24 18:31:40 +08:00
Syngnat
b7636f5fdd Merge remote-tracking branch 'origin/dev' into dev 2026-07-24 18:13:22 +08:00
Syngnat
10db415d7a 🐛 fix(datagrid): 修复筛选字段选择失效
- 将 Select 下拉选项识别为交互目标
- 避免页内查找焦点逻辑中断字段选择
- 补充下拉选项交互目标回归测试
2026-07-24 18:12:47 +08:00
Syngnat
b40214e65c 🐛 fix(kingbase): 修复无模式前缀查询失败
- 缓存连接初始化时探测出的 search_path
- 新建固定会话后先同步 schema 搜索路径
- 补充金仓会话初始化顺序回归测试
2026-07-24 18:12:25 +08:00
Syngnat
55b24b2d02 🐛 fix(table-designer): fix table sorting and column options (#705) (#709)
## Summary

- sort table names in natural numeric order in both the table overview
and sidebar
- preserve MySQL column default values, including explicit empty-string
defaults and supported expressions
- add per-column default, character set, collation, and comment editing
- generate complete MySQL column definitions while filtering
`DEFAULT_GENERATED`
- keep column-level character set behavior scoped to MySQL

## Testing

- `npm --prefix frontend test --
src/components/TableDesignerSqlPreview.test.tsx
src/utils/tableOverviewFilter.test.ts src/utils/columnDefinition.test.ts
src/components/tableDesignerSchemaSql.test.ts` (58 passed)
- sidebar natural-sort focused test (passed)
- `npm --prefix frontend run build` (passed; existing chunk-size warning
only)
- `go test ./internal/db ./internal/connection` (passed)
- i18n JSON validation, Go formatting check, and `git show --check`
(passed)

## Validation notes

- The full sidebar test file still has 5 unrelated source/CSS sentinel
failures. The same 5 failures reproduce against the pre-sidebar-change
baseline.
- Repository-wide frontend and Go suites contain existing
environment/baseline failures unrelated to this change.
- Docker was unavailable, so a disposable MySQL round-trip test could
not be run.
- The development page was reachable, but Playwright is not installed in
the repository, so automated UI interaction screenshots were not
produced.

## Known limitation

MySQL `SHOW FULL COLUMNS` cannot reliably distinguish no `DEFAULT`
clause from an explicit `DEFAULT NULL`. This change preserves non-null
defaults and explicit empty-string defaults without introducing a full
`SHOW CREATE TABLE` parser.

Closes #705
2026-07-24 18:03:33 +08:00
mango
2a7fcb4781 🐛 fix(table-designer): fix table sorting and column options (#705) 2026-07-24 17:55:22 +08:00
Syngnat
7398873435 Merge pull request #708 from virgosgod-maker/fix/data-viewer-refresh-total 2026-07-24 17:36:57 +08:00
Syngnat
016f0197eb 🔁 sync(pr): 合并 PR #704 最新来源分支 2026-07-24 17:22:37 +08:00
Syngnat
ef625ec911 🐛 fix(datagrid): 修复空结果横向滚动条位置异常
- 实测表格 DOM 溢出与轨道宽度,轻微溢出时仍将滚动条固定到底部
- 空结果时关闭数据预览面板并清理聚焦状态,避免残留布局占位
- 扩展性能复现页支持零行数据并补充布局与预览面板回归测试
2026-07-24 17:13:39 +08:00
mango
43c6f5e391 🐛 fix(data-viewer): 刷新表数据时重新统计总数
Fixes Syngnat/GoNavi#707
2026-07-24 16:19:15 +08:00
virgosgod-maker
2b2cc231af Merge branch 'Syngnat:dev' into dev 2026-07-24 15:50:08 +08:00
Syngnat
72432b639e Merge pull request #704 from virgosgod-maker/dev
 feat(query-editor): 美化 SQL 支持仅格式化选中内容
2026-07-24 15:22:10 +08:00
Syngnat
d520c9b806 ️ perf(sidebar): 优化大型资源树折叠动画
- 延迟隐藏资源树内容,使侧栏宽度收起动画保持连续
- 稳定 Sidebar 属性并保留已加载节点,避免大量对象触发重复渲染
- 覆盖 V2、旧版与减少动态效果场景,补充折叠回归测试
- 关联问题:#697
2026-07-24 15:16:15 +08:00
mango
2307a539a8 feat(query-editor): 美化 SQL 支持仅格式化选中内容
有非空选区时只美化选中 SQL,无选区时仍美化全文。
2026-07-24 14:56:31 +08:00
Syngnat
1e4ece74a7 feat(sidebar): 优化窄宽度连接头部展示
- 移除连接头部状态徽章,释放连接名与库名显示空间
- 窄宽度时收起新建查询文字并保持操作按钮可用
- 连接名或库名截断时悬浮同时展示完整信息
- 补充响应式布局、主题对比度与悬浮提示回归测试
2026-07-24 14:46:24 +08:00
Syngnat
3bb0866633 🐛 fix(driver-agent): 修复 Windows 测试连接释放失败
- 优先等待驱动代理自然退出,超时后再执行强制终止
- 进程已退出时忽略 Windows 终止权限竞态,避免连接成功被误判为失败
- 统一可选驱动与 MySQL agent 清理流程并补充回归测试
2026-07-24 14:27:09 +08:00
Syngnat
c76daa0727 🐛 fix(update): 修复更新完成提示被弹窗遮挡
- 新增静态反馈专用层级,确保消息提示高于嵌套弹窗和退出确认框
- 调整 Ant Design 静态反馈的全局层级配置,保持普通弹出层顺序不变
- 补充反馈层级顺序与全局配置回归测试
2026-07-24 14:15:29 +08:00
Syngnat
e8eb6366c3 feat(tabs): 默认启用双行标签展示
- 主行默认仅展示对象名,副行依次展示对象类型、连接名和数据库
- 调整设置项顺序并默认关闭 Schema 与 Host/IP
- 升级持久化版本并仅迁移未自定义的旧默认配置
- 补充默认快照、标签文案和配置迁移回归测试
2026-07-24 14:00:49 +08:00
Syngnat
340e7837a3 feat(tabs): 支持工作区标签宽度自适应
- 根据工作区可用宽度和标签数量动态分配标签宽度
- 使用 ResizeObserver 响应布局变化并限制可读宽度范围
- 通过 CSS 变量同步标签宽度并补充边界回归测试
2026-07-24 14:00:18 +08:00
Syngnat
aee4da47db 🐛 fix(sidebar): 调整折叠状态下的展开按钮位置
- 将 V2 侧栏展开按钮从标题栏移至固定工具栏顶部
- 保持展开与折叠后的焦点回迁和无障碍属性
- 补充固定栏按钮顺序、交互和样式回归测试
2026-07-24 13:59:43 +08:00
Syngnat
300eb3d48e Merge pull request #699 from AutumnNazi/fix/redis-key-detail-actions-layout 2026-07-24 13:26:14 +08:00
Syngnat
090e51c0ef Merge pull request #701 from AutumnNazi/feature/sidebar-recent-query-actions 2026-07-24 13:05:51 +08:00
AutumnNazi
0d27d2deaa feat(sidebar): 支持删除与清空近期查询
- 为每条近期查询增加删除入口,并在标题区提供清空操作
- 通过持久化可见性标记隐藏近期记录,保留完整 SQL 执行日志
- 补齐六语言文案及交互、订阅和状态持久化测试
2026-07-24 12:35:56 +08:00
Syngnat
9275e93421 🐛 fix(query-editor): 修复 Oracle 长脚本执行卡死
- 线性屏蔽 SQL 注释和字符串,避免 PL/SQL 定义检测发生正则灾难性回溯
- 仅为顶层 SELECT 解析结果表定位,避免匿名块内部查询触发元数据加载
- 新增长注释匿名块与多结果回归,验证 Oracle 过程和 SQLPlus 分隔符兼容性
2026-07-24 12:22:37 +08:00
Syngnat
e43fc6e1a1 🐛 fix(ci): 修复 Windows 更新 MSI 测试夹具
- 为多实例确认和单实例直启用例显式固定当前 MSI 安装模式
- 在测试清理阶段恢复安装模式解析器,避免全局注入污染后续用例
- 避免临时安装目录被误判为 Portable 后提前触发包兼容性失败
2026-07-24 12:00:40 +08:00
Syngnat
562afd1406 Merge remote-tracking branch 'origin/dev' into dev 2026-07-24 11:43:34 +08:00
Syngnat
d3909c7dff feat(saved-query): 支持独立 SQL 文件与自定义存储目录
- 将已存查询内容从 JSON 拆分为独立 .sql 文件,并采用可读名称和数字后缀处理冲突
- 自动迁移旧版内联 SQL 与摘要文件名,保留外部编辑并在失败时回滚
- 支持选择、迁移、打开及恢复默认存储目录,补充数据根切换串行保护
- 新增已存查询右键在文件夹中打开,并同步处理查询重命名后的文件路径
- 补齐 Wails、浏览器模拟、六语言文案及后端和前端回归测试
2026-07-24 11:29:04 +08:00
github-actions[bot]
1be0fac702 chore(docs): refresh star history chart [skip ci] 2026-07-24 03:27:30 +00:00
github-actions[bot]
5e5cbe3577 chore(docs): refresh star history chart [skip ci] 2026-07-24 03:20:01 +00:00
AutumnNazi
427d22d9e7 🎨 style(redis): 优化 Key 详情操作按钮布局
- 将 Key 名称、类型与 TTL/长度、操作按钮拆分为独立行
- 移除操作按钮组外层灰色容器并保留窄宽度换行
- 增加 Key 详情布局交互回归测试
2026-07-24 11:19:17 +08:00
Syngnat
4bc131264b Merge remote-tracking branch 'origin/dev' into dev 2026-07-24 10:50:21 +08:00
github-actions[bot]
ee62171d84 chore(docs): refresh star history chart [skip ci] 2026-07-24 02:47:15 +00:00
Syngnat
bbcafe63f4 🐛 fix(update): 修复 Windows 在线更新多实例确认流程
- 安装前获取维护锁并枚举同目录进程,仅检测到其他实例时触发关闭确认
- 改用 Windows 原生系统模态对话框并先收起下载进度窗口,避免确认提示被遮挡
- 单实例直接进入安装,取消确认或退出检查中止后恢复下载完成状态
- 多语言确认文案展示实际实例数量,补齐前后端与发布工作流回归测试
2026-07-24 10:19:09 +08:00
Syngnat
20c322627e 🔧 chore(ci): Star History 仅在 star 增长≥50 时提交
- 增加 last-star-count 基线文件与增长阈值闸门
- 未达阈值时跳过图表渲染与 commit,避免频繁刷历史
- workflow_dispatch 仍支持强制刷新
2026-07-24 10:08:52 +08:00
github-actions[bot]
9a80ae3a7b chore(docs): refresh star history chart [skip ci] 2026-07-24 01:11:49 +00:00
github-actions[bot]
b5585631ce chore(docs): refresh star history chart [skip ci] 2026-07-24 00:55:04 +00:00
github-actions[bot]
43cf2b4a15 chore(docs): refresh star history chart [skip ci] 2026-07-24 00:38:59 +00:00
github-actions[bot]
74c9002c87 chore(docs): refresh star history chart [skip ci] 2026-07-24 00:09:39 +00:00
github-actions[bot]
2e4c257fdc chore(docs): refresh star history chart [skip ci] 2026-07-23 17:05:51 +00:00
Syngnat
7579bc6eab feat(datagrid): 精简结果工具栏并支持快捷页内查找
- 将结果视图操作改为图标按钮并补充悬浮提示
- 移除冗余状态信息并支持 Ctrl/Cmd+F 打开当前页查找
- 完善查找导航、关闭和自适应布局,避免抢占 SQL 编辑器快捷键
2026-07-23 23:13:56 +08:00
Syngnat
86facaaf8c 📝 docs(readme): 添加华龙赞助致谢并接入 CI 刷新 Star History
- 中英文 README 新增华龙中转站赞助商板块与共建额度说明(链至 #671)
- 收录赞助商 logo 资源 assets/sponsors
- 使用 star-history-action + GITHUB_TOKEN 定时/点 Star 刷新增长曲线
- 补充本地生成脚本 tools/generate_star_history_svg.py 作为备用
2026-07-23 21:59:56 +08:00
Syngnat
b595c5fdfc 🔁 sync(datagrid): 合并尾页按钮布局调整 (#686)
- 将尾页按钮图标移动到文字右侧,统一分页操作阅读顺序
- 保留 #685 的独立合并记录与两个 PR 的原始提交关系
- 限定合并结果仅修改分页按钮组件
2026-07-23 17:16:52 +08:00