1
0

feat: 统一品牌标识、关于页面三卡片布局与版本诊断功能

- 统一品牌为 Nex:侧边栏、托盘 tooltip、HTML 标题、favicon (PNG 替代 SVG)
- 重构关于页面为三卡片布局(品牌/版本/链接),版本状态 Tag 绝对定位右上角
- 新增 GET /api/version 后端接口,返回 version/commit/build_time
- 新增前端版本一致性诊断:匹配/不匹配/不可判断三种状态
- 同步 delta specs 到主 specs 并归档变更
This commit is contained in:
2026-05-05 03:28:22 +08:00
parent 9e33e570af
commit 8eea30ea11
42 changed files with 1316 additions and 111 deletions

View File

@@ -66,3 +66,56 @@
- **WHEN** 执行前端生产构建
- **THEN** 构建流程 SHALL 注入 `VITE_APP_VERSION`
- **AND** 该值 SHALL 等于 `VERSION` 中的版本号
### Requirement: 后端运行时版本查询
系统 SHALL 通过管理接口暴露后端运行时构建版本信息,供前端和用户诊断前后端版本一致性。
#### Scenario: 查询后端版本信息
- **WHEN** 客户端请求 `GET /api/version`
- **THEN** 后端 SHALL 返回 HTTP 200
- **THEN** 响应 JSON SHALL 包含 `version` 字段
- **THEN** 响应 JSON SHALL 包含 `commit` 字段
- **THEN** 响应 JSON SHALL 包含 `build_time` 字段
#### Scenario: 版本信息来源于构建注入
- **WHEN** 后端返回版本信息
- **THEN** `version` SHALL 来源于 `buildinfo.Version()`
- **THEN** `commit` SHALL 来源于 `buildinfo.Commit()`
- **THEN** `build_time` SHALL 来源于 `buildinfo.BuildTime()`
- **THEN** 后端 SHALL NOT 在运行时读取仓库 `VERSION` 文件作为接口响应来源
#### Scenario: 本地开发构建降级值
- **WHEN** 后端未通过构建参数注入版本元数据
- **THEN** 后端版本接口 SHALL 返回 buildinfo 的默认降级值
- **THEN** 前端 SHALL 能够展示该降级值而不崩溃
### Requirement: 前后端版本一致性诊断
系统 SHALL 支持前端使用自身构建版本和后端运行时版本进行一致性诊断。
#### Scenario: 前端读取构建版本
- **WHEN** 前端渲染版本信息
- **THEN** 前端 SHALL 使用 `VITE_APP_VERSION` 作为前端版本号
- **THEN** `VITE_APP_VERSION` SHALL 继续由版本同步流程保持与 `VERSION` 一致
#### Scenario: 诊断版本匹配
- **WHEN** 前端版本号和后端版本号均可判断且完全相同
- **THEN** 前端 SHALL 将版本状态判定为一致
#### Scenario: 诊断版本不匹配
- **WHEN** 前端版本号和后端版本号均可判断且不相同
- **THEN** 前端 SHALL 将版本状态判定为不一致
- **THEN** 前端 SHALL 将该状态作为诊断提示展示
#### Scenario: 诊断版本不可判断
- **WHEN** 任一版本号为空、`dev``unknown`
- **THEN** 前端 SHALL 将版本状态判定为无法判断
- **THEN** 前端 SHALL NOT 将该状态判定为版本不一致