1
0

fix: 启动参数 duration 候选值对齐后端标准格式

前端 Select 使用 Go time.Duration.String() 标准字符串作为 value,
与后端查询/保存响应保持一致,解决保存后反显不匹配的问题。
This commit is contained in:
2026-05-08 14:18:09 +08:00
parent 6b00045f4e
commit c524e8f928
9 changed files with 197 additions and 16 deletions

View File

@@ -569,3 +569,33 @@ server 入口 SHALL 允许前端查看当前有效启动参数,但 SHALL NOT
- **THEN** 后端 SHALL 返回禁止修改错误
- **THEN** 后端 SHALL NOT 写入配置文件
- **THEN** 后端 SHALL NOT 修改当前运行配置
### Requirement: 启动参数 duration 标准格式
系统 SHALL 在启动参数设置查询、保存响应和配置文件保存中使用 Go `time.Duration.String()` 标准字符串表示 duration 字段,同时继续接受合法 Go duration 字符串作为输入。
#### Scenario: 查询启动参数时返回标准 duration 字符串
- **WHEN** 后端查询启动参数设置
- **THEN** 返回配置中的 `server.read_timeout``server.write_timeout``database.conn_max_lifetime` SHALL 使用 Go `time.Duration.String()` 标准字符串格式
- **THEN** 若配置文件中 `database.conn_max_lifetime``30m`,返回值 SHALL 为 `30m0s`
- **THEN** 若配置文件中 `database.conn_max_lifetime``1h`,返回值 SHALL 为 `1h0m0s`
#### Scenario: 保存启动参数时接受标准 duration 字符串
- **WHEN** desktop 入口收到包含 `database.conn_max_lifetime: 1h0m0s` 的有效启动参数保存请求
- **THEN** 后端 SHALL 成功解析该 duration 字符串
- **THEN** 后端 SHALL 将配置保存到默认配置文件
- **THEN** 保存响应中的 `database.conn_max_lifetime` SHALL 为 `1h0m0s`
#### Scenario: 保存启动参数时写入标准 duration 字符串
- **WHEN** desktop 入口成功保存启动参数配置
- **THEN** 写入配置文件的 `server.read_timeout``server.write_timeout``database.conn_max_lifetime` SHALL 使用 Go `time.Duration.String()` 标准字符串格式
- **THEN** 若保存请求中的 `database.conn_max_lifetime` 语义为 30 分钟,配置文件中的值 SHALL 为 `30m0s`
#### Scenario: 读取用户手写的合法 duration 字符串
- **WHEN** 配置文件中 duration 字段使用合法 Go duration 字符串,例如 `30m``30m0s`
- **THEN** 后端 SHALL 正确解析配置文件
- **THEN** 后端返回启动参数设置时 SHALL 将语义等价的 duration 统一为 Go `time.Duration.String()` 标准字符串

View File

@@ -412,9 +412,11 @@ TBD - 提供供应商、模型配置和总览的前端管理界面
- **WHEN** 前端渲染启动参数设置表单
- **THEN** `server.readTimeout` 字段 SHALL 使用 Select 下拉组件提供以下预设选项5 秒、10 秒、15 秒、30 秒、1 分钟、2 分钟、5 分钟
- **THEN** `server.writeTimeout` 字段 SHALL 使用 Select 下拉组件,提供与 readTimeout 相同的预设选项
- **THEN** `server.readTimeout` 字段的 Select value SHALL 分别为 `5s``10s``15s``30s``1m0s``2m0s``5m0s`
- **THEN** `server.writeTimeout` 字段 SHALL 使用 Select 下拉组件,提供与 readTimeout 相同的预设选项和值
- **THEN** `database.connMaxLifetime` 字段 SHALL 使用 Select 下拉组件提供以下预设选项5 分钟、15 分钟、30 分钟、1 小时、2 小时、4 小时
- **THEN** duration 字段的 Select value SHALL 使用 Go duration 字符串格式(如 `"30s"``"1h"`
- **THEN** `database.connMaxLifetime` 字段的 Select value SHALL 分别为 `5m0s``15m0s``30m0s``1h0m0s``2h0m0s``4h0m0s`
- **THEN** duration 字段的 Select value SHALL 使用 Go `time.Duration.String()` 标准字符串格式
- **THEN** duration 字段的 Select label SHALL 使用中文单位显示(如 `"30 秒"``"1 小时"`
#### Scenario: 日志最大保留天数使用下拉预设选择