Commit Graph

1637 Commits

Author SHA1 Message Date
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
Syngnat
74c2fe6039 🔁 sync(datagrid): 合并跳页输入框居中修复 (#685)
- 调整跳页数字输入框内部布局与行高,保持内容垂直居中
- 排除锁文件、错误 package 校验值与生成绑定空白噪音
- 保留当前分支已完成的侧栏样式与绑定文件内容
2026-07-23 17:16:21 +08:00
Syngnat
61f01b78d0 feat(sidebar): 支持仅折叠资源树并保留固定栏
- 折叠 V2 侧栏时仅隐藏资源树,按界面缩放保留固定操作栏
- 将 SQL 分析与 SQL 审计入口迁移至固定栏并优化小窗口滚动布局
- 增加标题栏展开入口与双向焦点回切,补充侧栏回归测试
2026-07-23 17:12:19 +08:00
Syngnat
a08520f4f3 🔧 chore(frontend): 同步 package 校验文件 2026-07-23 16:41:36 +08:00
Syngnat
d618ef381e feat(data-transfer): 完善数据库 SQL 备份与恢复
- 数据导入工作台新增数据库模式,支持 SQL 文件选择、目标库、进度、取消与重试
- 新增受连接保护约束的 ImportDatabaseSQL 接口并复用流式执行链路
- SQL 导出支持切换数据库上下文,兼顾原库备份和跨库导入
- 调整侧栏与表概览入口,备份先进入工作台确认配置再执行
- 同步 Wails 绑定、Web 运行时限制、六语文案和回归测试
2026-07-23 16:40:44 +08:00
Syngnat
1f17b5cfad 🎨 style(settings/ai): 统一设置中心与 AI 配置交互
- 移除设置导航、详情页和 AI 配置列表的冗余分隔线
- 梳理外观字号项顺序并精简日志目录重复标题
- 恢复安全与上下文选项语义色,统一供应商操作按钮
- 强化 MCP 页签、客户端选中态和折叠交互
- 拆分推荐流程与内置工具视图并补齐六语回归测试
2026-07-23 16:36:21 +08:00