Commit Graph

1720 Commits

Author SHA1 Message Date
AutumnNazi
b2f2dff6fd 🐛 fix(tabs): 恢复活动标签顶部强调条
- 恢复 V2 工作区活动标签顶部绿色强调条
- 保留标签四角圆角与顶部伪元素屏蔽逻辑
- 更新活动标签视觉回归断言
2026-07-26 20:35:29 +08:00
Syngnat
fb0b2fe7c7 修复前端主线测试基线与连接保护兼容 (#724)
## 变更内容

- 保留旧连接配置 `readOnly: true` 的四项保护兼容语义,并确保 Redis 等不支持保护模式的数据源忽略旧标记
- 修复 QueryEditor 内联、原生分离和浮动结果窗口传递的实际表身份,避免元数据表名覆盖 schema-qualified 结果表名
- 修复 QueryEditor renderer/result-session 测试隔离,同步托管事务、all-columns 定位和 SQL
Logs 等当前行为
- 更新 Sidebar/DataGrid 拆分后的 i18n source guards,以及
DataGrid、TabManager、ConnectionModal、JVM 等现有组件契约

## 验证

- `npm --prefix frontend test`:509 个文件、3946 项测试全部通过
- `npm --prefix frontend run build`:通过(仅保留既有 chunk size warning)
- `git diff --check upstream/dev...HEAD`:通过

## 风险

- 生产改动仅涉及连接 RPC 保护配置归一化和查询结果 DataGrid 的表身份传递
- 其余改动均为测试隔离、源码 owner 迁移和当前行为契约同步
- 未包含 Issue #719 的 `v2-theme.css` 或 `DataGrid.layout.test.tsx` 变更

## 回滚

可按提交逆序回滚;生产行为提交与测试提交已分离,连接保护与查询结果身份修复可独立撤销。
2026-07-26 18:52:31 +08:00
Syngnat
9ff05df9ae 🐛 fix: 修复 Issue #719 (#723)
## 关联 Issue

Closes #719

## 变更内容

V2 数据表工具栏的“提交事务”按钮被专属样式覆盖为浅色背景,即使存在待提交变更也不够醒目,且启用态与禁用态区分不足。

- 将可提交状态改为实心主题强调色,并补充 hover、focus、active 交互反馈
- 将无待提交变更时的禁用状态恢复为中性灰色
- 补充启用、交互和禁用状态的 CSS 回归断言
- 修改仅影响 V2 DataGrid 的提交事务按钮,不涉及 SQL 编辑器事务按钮或提交逻辑

## 测试结果

- `npm --prefix frontend test -- --run
src/components/DataGrid.layout.test.tsx`:通过,55 项测试全部通过
- `npm --prefix frontend run build`:通过
- `git diff --check`:通过
- `npm --prefix frontend test`:与 `upstream/dev` 基线一致,均为 509 个测试文件中 39
个失败、3943 项测试中 70 项失败;失败集中在既有 i18n、Sidebar、QueryEditor 和 DataGrid DDL
测试,本次修改未新增失败

## 风险说明

- 不涉及数据结构、数据迁移或后端行为变化
- 不涉及 API 或兼容性变化
- 样式使用现有主题变量,可适配内置和自定义主题
- 如需回滚,可直接还原本 PR 的 CSS 与测试提交
2026-07-26 18:51:43 +08:00
Syngnat
564282ba80 🐛 修复外部 SQL 恢复并支持表字段复制粘贴 (#722)
## 背景
关联 Issue:#717。

## 变更
- 修复外部 SQL 标签关闭后,React 卸载清理逻辑重新写回草稿、导致 GoNavi
重启后恢复已关闭文件的问题。标签已关闭时清理草稿,仍存在时保留卸载保存行为。
- 为表设计器增加字段定义 `Ctrl+C` / `Ctrl+V`。使用带版本前缀的 JSON 剪贴板协议,保留字段定义属性并重新生成 UI
key。
- 粘贴字段统一追加到表格末尾;字段重名按不区分大小写自动生成 `_copy`、`_copy_2` 等后缀。
- 在文本输入框、textarea、select、contenteditable 中保留原生剪贴板行为。

## 验证
- `npm --prefix frontend run build`:通过。
- 字段剪贴板、DataGrid 剪贴板、批量动作、表设计器 SQL/元数据相关回归:通过。
- 新增外部 SQL 生命周期回归:2/2 通过。
- `go test ./internal/app ./internal/db -run ApplyChanges|ChangePreview
-count=1`:通过。
- `npm --prefix frontend run i18n:scan`:退出码 0,报告仓库既有扫描发现。
- 完整前端/Go 测试套件存在仓库既有 i18n 断言失败及可选驱动、外部服务、JVM/网络环境相关失败;本次新增回归未失败。

Closes #717
2026-07-26 18:51:33 +08:00
mango
aec7e596d6 test(frontend): 同步现有组件行为契约 2026-07-26 00:25:10 +08:00
mango
23cb8097c0 test(i18n): 更新组件拆分后的源码守卫 2026-07-26 00:24:59 +08:00
mango
54f973479c 🐛 fix(connection): 修复 RPC 保护配置构建类型 2026-07-26 00:24:42 +08:00
mango
2d9e92fbf9 test(query-editor): 修复结果测试隔离与过期断言 2026-07-25 23:49:15 +08:00
mango
cf553fda48 🐛 fix(query-editor): 修复查询结果实际表身份 2026-07-25 23:33:00 +08:00
mango
9ad5cb4888 🐛 fix(connection): 保留旧连接保护配置兼容性 2026-07-25 23:24:45 +08:00
mango
fe69404431 🐛 fix: 修复 Issue #719 (Closes #719) 2026-07-25 22:42:42 +08:00
mango
9e30ccca01 Merge branch 'dev' of https://github.com/Syngnat/GoNavi into dev 2026-07-25 21:35:13 +08:00
mango
7f4feef3d6 🐛 fix(table-designer): 修复外部 SQL 恢复并支持字段复制粘贴 (#717) 2026-07-25 21:02:25 +08:00
Syngnat
6eff9eb854 feat(datagrid): 支持选区单元格复制粘贴 (#718) (#720)
## 背景

修复 #718:复制表格中的多行多列单元格后,可以从选中的目标单元格起像 Excel 一样粘贴。

## 变更

- 支持从目标单元格起按剪贴板二维矩阵向右、向下粘贴
- 支持 CRLF、空单元格和精确大写 `NULL` 到数据库 `null` 的转换
- 超出当前加载行或列范围时截断,不跨页、不新增行
- 保持不可编辑列的原坐标并跳过,不覆盖已有草稿
- 同步 `modifiedRows` 与 `modifiedColumns`,沿用现有手动/自动提交流程
- 保护输入框、弹窗等原生粘贴场景,并覆盖浮动窗口中的表格

## 验证

通过:

- `npm --prefix frontend run build`
- 剪贴板聚焦测试:12 tests passed
- 数据表格相关回归:除基线已有的 3 个 DDL/字段信息断言外全部通过
- `npm --prefix frontend run i18n:scan`
- `go test ./internal/app ./internal/db -run
'ApplyChanges|ChangePreview' -count=1`
- `git diff --check`
- Vite smoke check:`http://127.0.0.1:5173/` 返回 `200 OK`

说明:完整前端套件仍有 39 个既有失败文件、70 个失败用例;与 `upstream/dev`
基线对照失败文件数一致,新增剪贴板测试全部通过。`go test ./...` 的失败来自当前环境中的可选数据库驱动未启用、代理/网络、AI
超时和 Java fixture 等,与本次前端改动无关。

Fixes #718
2026-07-25 17:28:21 +08:00
mango
cb399e743b 🔧 chore(repo): 忽略本地 zcode 工作目录 2026-07-25 17:18:24 +08:00
mango
eddbe563e2 feat(datagrid): 支持选区单元格复制粘贴 (#718)
实现从选中单元格起按二维剪贴板矩阵粘贴,支持多行多列、NULL 空值和现有草稿更新。\n\nFixes #718
2026-07-25 17:15:00 +08:00
Syngnat
3be626af05 🚀 release: 发布 v0.9.0 (#716)
## 发布内容

- 表右键新建查询展开全部字段,连接分组快捷新建与环境预设
- 侧栏折叠性能优化、置顶星标只读指示、近期查询管理与标签自适应
- 修复 SSH 非 id_rsa 私钥选择、关于页滚动条、标签圆角与主题一致性
- 加固 driver-agent revision 校验与控制台 Form/Modal 弃用警告清理
- 修复 datagrid 筛选/滚动、Kingbase 查询、表设计排序与结果刷新统计

## 发布基线

- 源分支:`release/0.9.0`
- 候选提交:`fdfdebf24e445e088ed5190c2688dd4c7887803b`
- 目标分支:`main`
- 合并方式:merge commit

## 验证

- 基于 `origin/dev` 当前 tip 切出发布分支
- 合并后将在 `main` 合并提交创建 `v0.9.0` 标签
- 推送标签后由 Release 工作流完成构建与 latest 发布

## 发版后

- 将 `main` 回流合并到 `dev`,避免分支漂移
v0.9.0
2026-07-25 09:55:42 +08:00
Syngnat
fdfdebf24e feat(sidebar): 表新建查询展开全部字段而非 select *
- 新建查询时通过 DBGetColumns 拉取字段并生成 SELECT 列表
- 元数据不可用时回退 SELECT *,消息队列仍保持 LIMIT 预览
- 覆盖 V2/旧版右键菜单与表总览入口,补充模板单测

Refs #710
2026-07-25 09:25:04 +08:00
Syngnat
365c72ad22 🐛 fix(tabs/theme): 修复标签顶条与标题栏主题不一致 (#715)
## 背景

V2 工作区的活动 Tab
顶部仍显示一条绿色强调线,与当前圆角标签样式不协调。同时,自定义标题栏使用独立的固定背景,切换内置或自定义主题后无法与侧栏表面颜色保持一致。

## 变更点

- 移除 V2 主工作区活动 Tab 顶部的 inset 强调条
- 保留活动 Tab 的选中背景、8px 圆角及原有交互状态
- V2 自定义标题栏改为复用侧栏的 `--gn-bg-panel-2` 主题表面
- 补充活动 Tab 和标题栏主题来源的回归断言

## 影响范围

- 仅影响 V2 主工作区 Tab 和应用自定义标题栏的视觉表现
- legacy 标题栏继续使用原有 `bgMain`,透明度与模糊逻辑不变
- Modal、Drawer 等其他 Ant Tabs 的强调条不受影响
- 不修改标签尺寸、拖拽、关闭、窗口控制或主题配置逻辑
- 无后端、数据库、依赖或配置变更

## 验证

- `npm test -- --run src/components/TabManager.adaptive-width.test.ts
src/App.sidebar-collapse.test.ts`:12/12 通过
- `npx tsc --noEmit --pretty false`:通过
- Playwright 运行时验证:标题栏与侧栏背景一致,主题 token 更新后同步变化
- Playwright 活动 Tab 样式验证:`box-shadow: none`、顶部伪元素隐藏、圆角保持 8px
- `git diff --check origin/dev...HEAD`:通过
2026-07-24 22:44:44 +08:00
Syngnat
17a3ea91a1 🐛 fix(ci): 加固 driver-agent revision 校验避免 gaussdb 空值失败
- metadata 探测增加重试、stdout/stderr 诊断与 UPX 解压回退
- UPX 冒烟失败恢复未压缩产物后仍做 metadata 自检
- gaussdb revision 指纹补齐 postgres_impl 依赖
2026-07-24 22:43:57 +08:00
Syngnat
4c0f0a8fdd 🔧 fix(ui): 清理控制台 Form 与 Modal 弃用警告
- 关闭消息发送弹窗时不再对已卸载 Form 调用 resetFields
- 缩放修复路径中 ResetWebViewZoom 不可用时最多告警一次
- 将 Drawer/Modal 的 destroyOnClose 统一迁移为 destroyOnHidden
2026-07-24 22:31:33 +08:00
AutumnNazi
a2dc8db513 🐛 fix(tabs/theme): 修复标签顶条与标题栏主题不一致
- 移除 V2 工作区活动标签顶部强调条,保留圆角与选中背景
- 让 V2 自定义标题栏跟随侧栏主题表面,同时保持 legacy 背景逻辑
- 补充标签与标题栏主题回归断言
2026-07-24 21:49:19 +08:00
Syngnat
4400fd67c0 🔧 fix(sidebar): 修复 resize 测试类型断言导致镜像构建失败
- 将 FakeHTMLElement 断言改为 unknown 中转,消除 tsc TS2352
- 恢复 image CI 中 npm run build 可通过
2026-07-24 21:42:14 +08:00
Syngnat
2a7ef109fd 🐛 fix(ssh): 修复非 id_rsa 私钥无法浏览选择与读取
- 修正 OpenFileDialog 默认目录,支持无扩展名密钥路径
- macOS 下取消错误文件名过滤,显示隐藏项以选择 ~/.ssh 密钥
- 私钥读/解析失败返回明确错误,示例改为 id_ed25519
- 补充选钥目录解析与私钥读取失败回归测试

Refs #711
2026-07-24 21:31:21 +08:00
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
mango
bb2b46cbaa 🐛 fix(data-viewer): 刷新表数据时重新统计总数
Fixes Syngnat/GoNavi#707
2026-07-24 16:16:13 +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