feat: 完善 Portal 与 Admin 生成记录耗时和时间展示 #65

Closed
opened 2026-08-26 11:03:17 +08:00 by ila · 7 comments
Owner

基本信息

  • 类型:用户可感知的数据展示与接口增强
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2
  • 关联工单:#61(复用已合入的 attempt 状态映射,非阻塞)
  • 阶段:已完成

原始需求

  • 来源:用户对话
  • 提出时间:2026-08-26
  • 用户关键原话(脱敏):“先做一张现有页面标注图确认字段位置,然后建立一个单元工单完成 Portal、Admin、接口字段和自动测试。”
  • 确认记录:用户于 2026-08-26 明确确认标注方案 v1。
  • 需求变更:用户于 2026-08-26 要求 Admin 生成记录默认不显示右侧详情,仅在双击列表行后显示;同日确认采用右侧抽屉并保留可见“查看”按钮作为键盘/单击替代入口。

背景与事实

  • generations 已有 created_at / started_at / completed_at,无需新增数据库字段即可计算总耗时、排队耗时和处理耗时。
  • Provider attempt 已有 latency_ms / started_at / finished_at。
  • Portal 与 Admin 当前均未显示总耗时;Admin 未返回 generation 的 started_at,Portal 结果接口的文件元数据与时间字段不完整。
  • 最近记录同时存在约 0.05 秒立即失败、约 300 秒超时失败和 70~465 秒成功,耗时是判断失败类型和上游表现的重要信息。

目标

  1. Portal 以用户可理解的方式显示终态总耗时和非终态已等待/已用时。
  2. Admin 在列表支持耗时比较,在详情展示排队、处理、上游耗时及准确时间。
  3. 区分系统事件与上游尝试,显示 Provider/模型名称、尝试序号、耗时和本地时间。
  4. 补齐页面所需的接口字段和 OpenAPI 描述,不新增或迁移数据库字段。
  5. 自动测试覆盖时间口径、空值、异常值、动态历史加载和 attempt 边界。

非目标

  • 不修改 worker、路由选择、重试、retryable、超时、租约或生成状态机。
  • 不新增数据库字段,不修改 migration,不删除 attempts 或 rendered_prompt。
  • 不增加计费、点数、余额、配额或“消耗金额”概念。
  • 不在 Portal 暴露 Provider、模型、attempt、渲染 Prompt 或内部错误码。
  • 不在本工单实现 Admin 服务端分页、报表、导出或长期聚合统计。
  • 不调用真实上游,不重试历史任务。

已确认设计

Portal

  • 历史元信息显示“状态 · 总耗时/已用时/已等待 · 相对时间”;类型继续由现有图标及可访问文本表达。
  • 当前结果头部增加总耗时或实时已用时;完整时间作为次级信息/提示,不挤占主区域。
  • 图片结果补充格式、分辨率和文件大小。
  • 时间使用整秒及“3分04秒”格式。

Admin

  • 列表调整为任务、用户账号、状态、中文类型、总耗时、创建时间;“最近 N 条”改为准确的“显示 N 条”。
  • 详情显示总耗时、排队耗时、处理耗时和提交/开始/完成时间;成功记录隐藏空错误行。
  • 渲染 Prompt 默认折叠,但继续保留并可查看。
  • lease 等记录显示为系统事件,不占上游尝试编号;Provider 显示“上游尝试 N · Provider / 模型 · 耗时”。
  • 时间线使用浏览器本地完整时间,不直接显示原始 ISO 字符串;Admin 耗时主显示 0.1 秒精度。

时间口径

  • 终态总耗时:completed_at - created_at。
  • 非终态已等待/已用时:响应/渲染时刻减 created_at;pending 称“已等待”,running 称“已用”。
  • 排队耗时:started_at - created_at。
  • 处理耗时:completed_at - started_at;运行中使用当前时刻减 started_at。
  • 上游耗时:Provider attempts 的 latency_ms 求和,并保留单次耗时。
  • 缺失时间显示符合状态的兜底;负值和无效时间不得显示负耗时或抛出页面异常。

接口方案

  • Portal 浏览器接口与 OpenAPI Generation 响应补充可空 started_at,继续使用 UTC ISO 8601 时间。
  • Portal 浏览器详情输出补齐 mime_type / size_bytes / width / height / created_at,与现有 OpenAPI 输出元数据对齐。
  • Admin Generation 响应补充 started_at、用户账号显示字段,以及用于 attempt 展示的 Provider/模型名称;现有字段保持兼容。
  • 耗时由既有时间戳与 latency_ms 派生,不持久化重复字段。
  • 更新 OpenAPI schema、接口测试及前后端时间格式辅助函数。

设计证据

  • 类型:现有页面双栏标注截图,符合小范围 UI 调整证据要求,不制作完整 HTML 原型。
  • 版本:v1
  • 固化路径:prototypes/65/v1/generation-record-timing-annotated.png
  • 确认人:用户
  • 确认时间:2026-08-26
  • 覆盖范围:Portal 历史/结果头部/结果文件信息;Admin 列表/详情时间组/尝试时间线;统一计算和格式。
  • v2 交互证据:prototypes/65/v2/index.html,提交 388d025,覆盖 Admin 默认全宽列表、双击/查看入口、右侧详情抽屉、关闭与窄屏状态;用户于 2026-08-26 确认。

交互变更(2026-08-26)

  • Admin 生成记录初始状态仅显示全宽列表,不预留空详情区域。
  • 双击行或点击“查看”按钮打开右侧详情抽屉;抽屉可通过关闭按钮或 Escape 关闭。
  • 桌面抽屉约占页面 45%,窄屏接近全宽;打开详情不改变列表列宽,避免布局跳动。
  • 刷新时保留仍存在的当前详情;记录已不存在时关闭抽屉。
  • 设计证据升级为 prototypes/65/v2/index.html,用户于 2026-08-26 确认;v1 保留不覆盖。

风险与回退

  • 风险:旧记录可能缺失 started_at/completed_at,attempt JSON 也可能缺失或格式异常;所有展示必须有空值与异常兜底。
  • 风险:服务端、浏览器和数据库时区不同;接口统一 UTC,页面统一按浏览器本地时区显示。
  • 风险:多 Provider 尝试、lease 重认领和本地限流事件不能混入上游调用次数。
  • 回退:恢复原接口 presenter 和两个页面显示;无数据库或生成数据回退。

验收标准

  • Portal 首屏和“加载更多”历史记录使用相同耗时文案,pending/running/terminal 分别正确。
  • Portal 当前结果显示总耗时或实时已用时,图片结果显示格式、分辨率和文件大小。
  • Portal 不显示 Provider、模型、attempt、内部错误码或渲染 Prompt。
  • Admin 列表显示用户账号、中文类型、总耗时和准确的结果数量文案。
  • Admin 详情显示总/排队/处理耗时及提交/开始/完成时间;成功记录不显示空错误行,Prompt 默认折叠。
  • Admin 初始仅显示全宽列表;双击行或点击“查看”打开右侧详情抽屉,关闭后不保留空详情区域。
  • 详情抽屉支持关闭按钮、Escape 和窄屏适配,打开/关闭不改变列表列宽。
  • Admin 时间线区分系统事件与上游尝试,并显示名称、序号、单次耗时和本地时间。
  • UTC 时间、空时间、负时间、亚秒、跨分钟、多 attempt 和畸形 attempt 均有自动测试。
  • Portal/OpenAPI/Admin 接口字段、OpenAPI schema 和兼容性测试通过。
  • Portal 桌面/移动端及 Admin 常用桌面宽度完成界面检查,无重叠、截断或明显布局跳动。
  • 不调用真实上游,不修改数据库、配置、路由和生成状态机。
  • 受影响 Go、Portal、Admin UI 测试、构建及仓库必要检查通过。

文档影响

  • 更新 Gitea Wiki 的 Product-Requirements-Overview:生成记录展示能力与用户/运营信息边界。
  • 更新 Architecture-and-Code-Map:Portal/OpenAPI/Admin Generation 响应字段和耗时派生口径。
  • 如验证命令发生变化,再更新 Local-Development-and-Verification;否则记录无变化。
  • 先更新 Wiki、在线回读,再同步核心 docs/ 镜像。
## 基本信息 - 类型:用户可感知的数据展示与接口增强 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 - 关联工单:#61(复用已合入的 attempt 状态映射,非阻塞) - 阶段:已完成 ## 原始需求 - 来源:用户对话 - 提出时间:2026-08-26 - 用户关键原话(脱敏):“先做一张现有页面标注图确认字段位置,然后建立一个单元工单完成 Portal、Admin、接口字段和自动测试。” - 确认记录:用户于 2026-08-26 明确确认标注方案 v1。 - 需求变更:用户于 2026-08-26 要求 Admin 生成记录默认不显示右侧详情,仅在双击列表行后显示;同日确认采用右侧抽屉并保留可见“查看”按钮作为键盘/单击替代入口。 ## 背景与事实 - `generations` 已有 `created_at / started_at / completed_at`,无需新增数据库字段即可计算总耗时、排队耗时和处理耗时。 - Provider attempt 已有 `latency_ms / started_at / finished_at`。 - Portal 与 Admin 当前均未显示总耗时;Admin 未返回 generation 的 `started_at`,Portal 结果接口的文件元数据与时间字段不完整。 - 最近记录同时存在约 0.05 秒立即失败、约 300 秒超时失败和 70~465 秒成功,耗时是判断失败类型和上游表现的重要信息。 ## 目标 1. Portal 以用户可理解的方式显示终态总耗时和非终态已等待/已用时。 2. Admin 在列表支持耗时比较,在详情展示排队、处理、上游耗时及准确时间。 3. 区分系统事件与上游尝试,显示 Provider/模型名称、尝试序号、耗时和本地时间。 4. 补齐页面所需的接口字段和 OpenAPI 描述,不新增或迁移数据库字段。 5. 自动测试覆盖时间口径、空值、异常值、动态历史加载和 attempt 边界。 ## 非目标 - 不修改 worker、路由选择、重试、retryable、超时、租约或生成状态机。 - 不新增数据库字段,不修改 migration,不删除 `attempts` 或 `rendered_prompt`。 - 不增加计费、点数、余额、配额或“消耗金额”概念。 - 不在 Portal 暴露 Provider、模型、attempt、渲染 Prompt 或内部错误码。 - 不在本工单实现 Admin 服务端分页、报表、导出或长期聚合统计。 - 不调用真实上游,不重试历史任务。 ## 已确认设计 ### Portal - 历史元信息显示“状态 · 总耗时/已用时/已等待 · 相对时间”;类型继续由现有图标及可访问文本表达。 - 当前结果头部增加总耗时或实时已用时;完整时间作为次级信息/提示,不挤占主区域。 - 图片结果补充格式、分辨率和文件大小。 - 时间使用整秒及“3分04秒”格式。 ### Admin - 列表调整为任务、用户账号、状态、中文类型、总耗时、创建时间;“最近 N 条”改为准确的“显示 N 条”。 - 详情显示总耗时、排队耗时、处理耗时和提交/开始/完成时间;成功记录隐藏空错误行。 - 渲染 Prompt 默认折叠,但继续保留并可查看。 - lease 等记录显示为系统事件,不占上游尝试编号;Provider 显示“上游尝试 N · Provider / 模型 · 耗时”。 - 时间线使用浏览器本地完整时间,不直接显示原始 ISO 字符串;Admin 耗时主显示 0.1 秒精度。 ### 时间口径 - 终态总耗时:`completed_at - created_at`。 - 非终态已等待/已用时:响应/渲染时刻减 `created_at`;pending 称“已等待”,running 称“已用”。 - 排队耗时:`started_at - created_at`。 - 处理耗时:`completed_at - started_at`;运行中使用当前时刻减 `started_at`。 - 上游耗时:Provider attempts 的 `latency_ms` 求和,并保留单次耗时。 - 缺失时间显示符合状态的兜底;负值和无效时间不得显示负耗时或抛出页面异常。 ## 接口方案 - Portal 浏览器接口与 OpenAPI Generation 响应补充可空 `started_at`,继续使用 UTC ISO 8601 时间。 - Portal 浏览器详情输出补齐 `mime_type / size_bytes / width / height / created_at`,与现有 OpenAPI 输出元数据对齐。 - Admin Generation 响应补充 `started_at`、用户账号显示字段,以及用于 attempt 展示的 Provider/模型名称;现有字段保持兼容。 - 耗时由既有时间戳与 `latency_ms` 派生,不持久化重复字段。 - 更新 OpenAPI schema、接口测试及前后端时间格式辅助函数。 ## 设计证据 - 类型:现有页面双栏标注截图,符合小范围 UI 调整证据要求,不制作完整 HTML 原型。 - 版本:v1 - 固化路径:`prototypes/65/v1/generation-record-timing-annotated.png` - 确认人:用户 - 确认时间:2026-08-26 - 覆盖范围:Portal 历史/结果头部/结果文件信息;Admin 列表/详情时间组/尝试时间线;统一计算和格式。 - v2 交互证据:`prototypes/65/v2/index.html`,提交 `388d025`,覆盖 Admin 默认全宽列表、双击/查看入口、右侧详情抽屉、关闭与窄屏状态;用户于 2026-08-26 确认。 ## 交互变更(2026-08-26) - Admin 生成记录初始状态仅显示全宽列表,不预留空详情区域。 - 双击行或点击“查看”按钮打开右侧详情抽屉;抽屉可通过关闭按钮或 Escape 关闭。 - 桌面抽屉约占页面 45%,窄屏接近全宽;打开详情不改变列表列宽,避免布局跳动。 - 刷新时保留仍存在的当前详情;记录已不存在时关闭抽屉。 - 设计证据升级为 `prototypes/65/v2/index.html`,用户于 2026-08-26 确认;v1 保留不覆盖。 ## 风险与回退 - 风险:旧记录可能缺失 `started_at/completed_at`,attempt JSON 也可能缺失或格式异常;所有展示必须有空值与异常兜底。 - 风险:服务端、浏览器和数据库时区不同;接口统一 UTC,页面统一按浏览器本地时区显示。 - 风险:多 Provider 尝试、lease 重认领和本地限流事件不能混入上游调用次数。 - 回退:恢复原接口 presenter 和两个页面显示;无数据库或生成数据回退。 ## 验收标准 - [x] Portal 首屏和“加载更多”历史记录使用相同耗时文案,pending/running/terminal 分别正确。 - [x] Portal 当前结果显示总耗时或实时已用时,图片结果显示格式、分辨率和文件大小。 - [x] Portal 不显示 Provider、模型、attempt、内部错误码或渲染 Prompt。 - [x] Admin 列表显示用户账号、中文类型、总耗时和准确的结果数量文案。 - [x] Admin 详情显示总/排队/处理耗时及提交/开始/完成时间;成功记录不显示空错误行,Prompt 默认折叠。 - [x] Admin 初始仅显示全宽列表;双击行或点击“查看”打开右侧详情抽屉,关闭后不保留空详情区域。 - [x] 详情抽屉支持关闭按钮、Escape 和窄屏适配,打开/关闭不改变列表列宽。 - [x] Admin 时间线区分系统事件与上游尝试,并显示名称、序号、单次耗时和本地时间。 - [x] UTC 时间、空时间、负时间、亚秒、跨分钟、多 attempt 和畸形 attempt 均有自动测试。 - [x] Portal/OpenAPI/Admin 接口字段、OpenAPI schema 和兼容性测试通过。 - [x] Portal 桌面/移动端及 Admin 常用桌面宽度完成界面检查,无重叠、截断或明显布局跳动。 - [x] 不调用真实上游,不修改数据库、配置、路由和生成状态机。 - [ ] 受影响 Go、Portal、Admin UI 测试、构建及仓库必要检查通过。 ## 文档影响 - 更新 Gitea Wiki 的 `Product-Requirements-Overview`:生成记录展示能力与用户/运营信息边界。 - 更新 `Architecture-and-Code-Map`:Portal/OpenAPI/Admin Generation 响应字段和耗时派生口径。 - 如验证命令发生变化,再更新 `Local-Development-and-Verification`;否则记录无变化。 - 先更新 Wiki、在线回读,再同步核心 `docs/` 镜像。
Author
Owner

建单与设计证据

  • 已确认设计固化至:prototypes/65/v1/generation-record-timing-annotated.png
  • 设计版本:v1
  • 确认人/时间:用户,2026-08-26
  • 覆盖范围:Portal 历史、结果头部、结果文件信息;Admin 列表、详情时间组、attempt 时间线;统一耗时口径和格式。
  • 设计提交:b6c8d6b docs: 固化生成记录耗时标注 (#65)
  • python dev_scripts/harness.py check --strict:通过。
  • 已同步加入 MVP #35 与 Epic #3 的未完成子工单索引。

当前停在“待实施”,尚未修改生产代码、接口、数据库或配置。

## 建单与设计证据 - 已确认设计固化至:[`prototypes/65/v1/generation-record-timing-annotated.png`](https://git.ilapage.cn/OPC/chorus/src/branch/main/prototypes/65/v1/generation-record-timing-annotated.png) - 设计版本:v1 - 确认人/时间:用户,2026-08-26 - 覆盖范围:Portal 历史、结果头部、结果文件信息;Admin 列表、详情时间组、attempt 时间线;统一耗时口径和格式。 - 设计提交:`b6c8d6b docs: 固化生成记录耗时标注 (#65)` - `python dev_scripts/harness.py check --strict`:通过。 - 已同步加入 MVP #35 与 Epic #3 的未完成子工单索引。 当前停在“待实施”,尚未修改生产代码、接口、数据库或配置。
Author
Owner

实现完成,进入待验收

  • 实现提交:762743c feat: 完善生成记录耗时展示 (#65),已推送 main。
  • Portal:历史/结果实时耗时、图片格式/尺寸/大小;浏览器/OpenAPI Generation 增加可空 started_at,浏览器详情 output 补齐元数据。
  • Admin:批量补齐用户、Provider、模型名称;列表/详情时间展示;系统事件不占 Provider 尝试序号;Prompt 默认折叠。
  • 数据与行为边界:无 migration、配置、worker、路由、retryable 或状态机改动;未调用真实上游。

验证

  • 根模块 go test ./...:通过。
  • admin/ 的 go test ./...:通过。
  • Admin UI:15 suites / 56 tests 通过;Lint 0 error(仓库既有 warning)。
  • Portal JS/E2E 脚本语法、受影响 Go 测试:通过。
  • DevHarness strict 与 Wiki mirror check:通过。
  • Supervisor 三项 Chorus 服务已重启并保持 Running;Portal/Admin API 启动日志和 Admin UI 开发编译成功。
  • Admin build:prod:本机 Node 可用内存不足退出,未得到生产 bundle 通过证据。
  • 浏览器桌面/移动视觉验收:本地会话在重启后失效,等待用户确认向本机登录表单提交测试凭据后补充;当前不勾选该验收项。

文档与归档

  • Product-Requirements-Overview:7500d2fdc3c026e3abb5a3cfd7e614cfb6ebd07f
  • Architecture-and-Code-Map:2ea61cf082225af867299f24eb6c44661ca7052b
  • Task archive:Task-65-完善生成记录耗时和时间展示,revision 32b29b87f4c40fd40518d43e3bee264f2ba1bbb3
  • 本地核心镜像已同步;未导出 docs/task/。
## 实现完成,进入待验收 - 实现提交:`762743c feat: 完善生成记录耗时展示 (#65)`,已推送 `main`。 - Portal:历史/结果实时耗时、图片格式/尺寸/大小;浏览器/OpenAPI Generation 增加可空 `started_at`,浏览器详情 output 补齐元数据。 - Admin:批量补齐用户、Provider、模型名称;列表/详情时间展示;系统事件不占 Provider 尝试序号;Prompt 默认折叠。 - 数据与行为边界:无 migration、配置、worker、路由、retryable 或状态机改动;未调用真实上游。 ### 验证 - 根模块 `go test ./...`:通过。 - `admin/` 的 `go test ./...`:通过。 - Admin UI:15 suites / 56 tests 通过;Lint 0 error(仓库既有 warning)。 - Portal JS/E2E 脚本语法、受影响 Go 测试:通过。 - DevHarness strict 与 Wiki mirror check:通过。 - Supervisor 三项 Chorus 服务已重启并保持 Running;Portal/Admin API 启动日志和 Admin UI 开发编译成功。 - Admin `build:prod`:本机 Node 可用内存不足退出,未得到生产 bundle 通过证据。 - 浏览器桌面/移动视觉验收:本地会话在重启后失效,等待用户确认向本机登录表单提交测试凭据后补充;当前不勾选该验收项。 ### 文档与归档 - Product-Requirements-Overview:`7500d2fdc3c026e3abb5a3cfd7e614cfb6ebd07f` - Architecture-and-Code-Map:`2ea61cf082225af867299f24eb6c44661ca7052b` - Task archive:`Task-65-完善生成记录耗时和时间展示`,revision `32b29b87f4c40fd40518d43e3bee264f2ba1bbb3` - 本地核心镜像已同步;未导出 `docs/task/`。
Author
Owner

浏览器验收与构建补充

  • 已按用户授权完成本机登录验证,未把凭据写入工单、Wiki、代码或截图。
  • Portal:桌面与 375×812 移动宽度通过;历史和结果耗时、图片元数据正常,无横向溢出、重叠或控制台错误。
  • Admin:常用桌面宽度通过;列表用户/类型/总耗时、详情总/排队/处理/上游耗时以及系统事件/Provider 尝试时间线正常,无横向溢出、重叠或控制台错误。
  • 为排除旧二进制影响,已重新构建并替换本机 Supervisor 托管的 Portal 与 Admin API 二进制;三项 Chorus 服务当前均为 Running。
  • Admin build:prod 再次验证:legacy bundle 成功,module bundle 在停止开发服务并将 Node heap 提高到 2 GB 后仍因本机原生内存不足退出。因此“全部测试、构建及检查通过”验收项保持未勾选;其余自动测试、Lint、DevHarness 和 Wiki mirror 检查均已通过。
  • Task archive 已更新,revision:907c0c9770b7fc3cb7df339b844ba20a77a0f3e8。

工单保持“待验收”,未调用真实 Provider 上游。

## 浏览器验收与构建补充 - 已按用户授权完成本机登录验证,未把凭据写入工单、Wiki、代码或截图。 - Portal:桌面与 375×812 移动宽度通过;历史和结果耗时、图片元数据正常,无横向溢出、重叠或控制台错误。 - Admin:常用桌面宽度通过;列表用户/类型/总耗时、详情总/排队/处理/上游耗时以及系统事件/Provider 尝试时间线正常,无横向溢出、重叠或控制台错误。 - 为排除旧二进制影响,已重新构建并替换本机 Supervisor 托管的 Portal 与 Admin API 二进制;三项 Chorus 服务当前均为 Running。 - Admin `build:prod` 再次验证:legacy bundle 成功,module bundle 在停止开发服务并将 Node heap 提高到 2 GB 后仍因本机原生内存不足退出。因此“全部测试、构建及检查通过”验收项保持未勾选;其余自动测试、Lint、DevHarness 和 Wiki mirror 检查均已通过。 - Task archive 已更新,revision:`907c0c9770b7fc3cb7df339b844ba20a77a0f3e8`。 工单保持“待验收”,未调用真实 Provider 上游。
Author
Owner

交互设计 v2 待复核

  • 可浏览快照:prototypes/65/v2/index.html
  • 提交:388d025 docs: 固化生成记录详情交互设计 v2 (#65)
  • 默认状态:生成记录列表占满内容区,不显示空详情面板。
  • 打开方式:双击列表行或点击“查看”按钮,从右侧打开详情抽屉。
  • 关闭方式:关闭按钮、点击遮罩或 Escape;关闭后列表保持全宽。
  • 响应式:桌面约 45% 宽,375×812 下接近全屏;已检查两个状态,无横向溢出。

按照设计门禁,当前未修改生产 UI,等待用户确认 v2。

## 交互设计 v2 待复核 - 可浏览快照:[`prototypes/65/v2/index.html`](https://git.ilapage.cn/OPC/chorus/src/branch/main/prototypes/65/v2/index.html) - 提交:`388d025 docs: 固化生成记录详情交互设计 v2 (#65)` - 默认状态:生成记录列表占满内容区,不显示空详情面板。 - 打开方式:双击列表行或点击“查看”按钮,从右侧打开详情抽屉。 - 关闭方式:关闭按钮、点击遮罩或 Escape;关闭后列表保持全宽。 - 响应式:桌面约 45% 宽,375×812 下接近全屏;已检查两个状态,无横向溢出。 按照设计门禁,当前未修改生产 UI,等待用户确认 v2。
Author
Owner

用户于 2026-08-26 确认交互设计 v2,#65 恢复“进行中”。本轮仅实施 Admin 生成记录的全宽列表与右侧详情抽屉,不改接口、数据库或生成链路。

用户于 2026-08-26 确认交互设计 v2,#65 恢复“进行中”。本轮仅实施 Admin 生成记录的全宽列表与右侧详情抽屉,不改接口、数据库或生成链路。
Author
Owner

v2 交互实现完成,恢复待验收

  • 设计证据:prototypes/65/v2/index.html,用户于 2026-08-26 确认。
  • 实现:Admin 生成记录默认全宽列表;双击行或点击“查看”打开右侧详情抽屉;关闭后清除详情;刷新时更新当前记录,记录消失则关闭。
  • 响应式:桌面抽屉 45%,宽度不超过页面布局;375×812 窄屏为 94%。
  • 提交:a590797 feat: 改用生成记录详情抽屉 (#65);a1f0eb7 test: 修正生成详情抽屉定位 (#65),均已推送 main。

验证

  • Admin UI 单元测试:15 suites / 59 tests 通过。
  • Admin UI Lint:0 error;98 个仓库既有 warning。
  • Admin UI Supervisor 开发编译:通过。
  • Playwright 真实本机页面:2 项通过,覆盖初始隐藏、双击打开、按钮打开、关闭、详情字段和 375×812 窄屏宽度;无控制台错误。
  • DevHarness strict 与 Wiki mirror check:通过。
  • 未调用真实 Provider,不改接口、数据库、配置或生成链路。
  • 既有未验证项不变:Admin build:prod module bundle 仍受本机 Node 原生内存不足影响。

Product-Requirements-Overview revision:2d5b8e5eccadc0b08212ef1df2c6582ee77b1a68;Task archive revision:dcbb5f8ee43d7c5a84344ff2bdf8f92bf40bd768。

## v2 交互实现完成,恢复待验收 - 设计证据:`prototypes/65/v2/index.html`,用户于 2026-08-26 确认。 - 实现:Admin 生成记录默认全宽列表;双击行或点击“查看”打开右侧详情抽屉;关闭后清除详情;刷新时更新当前记录,记录消失则关闭。 - 响应式:桌面抽屉 45%,宽度不超过页面布局;375×812 窄屏为 94%。 - 提交:`a590797 feat: 改用生成记录详情抽屉 (#65)`;`a1f0eb7 test: 修正生成详情抽屉定位 (#65)`,均已推送 `main`。 ### 验证 - Admin UI 单元测试:15 suites / 59 tests 通过。 - Admin UI Lint:0 error;98 个仓库既有 warning。 - Admin UI Supervisor 开发编译:通过。 - Playwright 真实本机页面:2 项通过,覆盖初始隐藏、双击打开、按钮打开、关闭、详情字段和 375×812 窄屏宽度;无控制台错误。 - DevHarness strict 与 Wiki mirror check:通过。 - 未调用真实 Provider,不改接口、数据库、配置或生成链路。 - 既有未验证项不变:Admin `build:prod` module bundle 仍受本机 Node 原生内存不足影响。 Product-Requirements-Overview revision:`2d5b8e5eccadc0b08212ef1df2c6582ee77b1a68`;Task archive revision:`dcbb5f8ee43d7c5a84344ff2bdf8f92bf40bd768`。
Author
Owner

用户验收通过

  • 验收时间:2026-08-27 14:57:05 +08:00
  • 验收人:用户
  • 结论:用户明确确认本工单通过验收,接受当前实现、部署与已记录的验证结果。
  • 文档:沿用工单中已经完成的 Wiki/镜像处理;没有新的长期事实变化。
  • 状态:已完成,关闭工单。
## 用户验收通过 - 验收时间:2026-08-27 14:57:05 +08:00 - 验收人:用户 - 结论:用户明确确认本工单通过验收,接受当前实现、部署与已记录的验证结果。 - 文档:沿用工单中已经完成的 Wiki/镜像处理;没有新的长期事实变化。 - 状态:已完成,关闭工单。
ila closed this issue 2026-08-27 14:57:22 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#65