Page:
Task-61-修正生成尝试状态展示
Pages
Architecture-and-Code-Map
Audience-Document-Template
Business-Rules-and-Glossary
Common-Changes
Delivery-Documentation-Guide
Deployment-Template
Deployment-and-Operations
Development-Workflow
Existing-Project-Adoption-Guide
Home
Local-Development-and-Verification
New-Project-Documentation-Setup
Product-Requirements-Overview
Project-Profile
Task-1-完善技术基线与实施约束
Task-10-实现-Provider-协议、mock-上游与内嵌-worker
Task-11-实现-portal-认证、异步提交与鉴权查询
Task-12-按确认原型实现-portal-用户界面
Task-13-完成-MVP-0-集成验收与运行闭环
Task-14-增加-Windows-本地开发启动脚本
Task-15-将现有-worker-接入-portal-运行与优雅退出
Task-16-明确-MVP-1-路由与-Provider-技术设计
Task-17-制作-MVP-1-管理端运营原型
Task-18-制作-MVP-1-用户端增强原型
Task-19-MVP-1-多上游可用性与运营管理
Task-2-制作-MVP-0-用户端生成页原型
Task-20-MVP-1-可逆迁移与-admin-基线
Task-21-MVP-1-路由核心与故障转移
Task-22-MVP-1-多-Provider-协议安全调用与-Worker-原子尝试
Task-23-MVP-1-管理端-API、凭据轮换与连通性审计
Task-24-go-admin-MVP-1-运营界面
Task-25-MVP-1-portal-提交契约与游标历史
Task-26-MVP-1-portal-用户界面
Task-27-MVP-1-集成验收
Task-28-安全管理员-bootstrap-命令
Task-29-管理端改为账号密码登录
Task-30-Provider-API-Key-明文存储与回显变更
Task-31-完全移除用户点数展示与需求
Task-32-移除-admin-ui-残留验证码登录交互
Task-33-修复-admin-ui-生产构建-runtime-资源缺失
Task-34-修复-admin-ui-SCSS-变量导入生产白屏
Task-36-MVP-2-API治理技术设计
Task-37-MVP-2-API-Key页面原型
Task-38-统一本地服务启停
Task-39-Supervisor-托管本地服务
Task-4-MVP-0-单上游安全异步生成闭环
Task-40-修复管理端动态菜单视图路径
Task-41-MVP-2-数据迁移与-API-Key-核心能力
Task-42-用户-API-Key-生命周期与-Portal-页面
Task-43-OpenAPI-v1-认证与生成接口
Task-44-实现三维限流与生成队列延后
Task-45-实现-API-安全审计与管理端-API
Task-46-交付管理端-API-Key-治理页面
Task-47-执行-MVP-2-跨模块集成验收
Task-48-简化单人开发工作流
Task-5-准备-MVP-0-可复现开发与测试环境
Task-50-用户端仅账号密码登录
Task-51-终端用户密码最小长度调整为-6-位
Task-52-规范化管理端-API-Key-幂等撤销时间响应
Task-53-修复-MVP-2-Portal-E2E-审计数据清理顺序
Task-55-Provider-出站端口白名单配置
Task-56-Portal-YAML-运行配置
Task-58-图片生成-300-秒受控复验
Task-59-管理端分组导航与适用系统模块原型
Task-6-初始化-Go-项目骨架与可逆数据库迁移
Task-60-??-images_edits-??????.-
Task-60-对齐-images_edits-图片编辑协议.-
Task-61-修正生成尝试状态展示
Task-65-完善生成记录耗时和时间展示
Task-66-建立管理端四分组菜单与权限-migration
Task-67-适配管理端系统-API-与管理员保护
Task-68-实现四分组导航与系统管理页面
Task-69-管理端系统模块集成与安全回归
Task-7-实现核心领域模型、状态规则和-Prompt-渲染
Task-8-实现-SSRF-安全-HTTP、AES-GCM-密钥信封和受保护本地存储
Task-9-实现-MySQL-8-SKIP-LOCKED-租约队列、attempt-原子记录和最终-CAS
Task-Archive-Template
Troubleshooting
unnamed
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
61 修正生成尝试状态展示
- 类型:缺陷修复
- 所属 Epic:#3
- 所属 MVP / 版本:#35 / MVP-2
- 状态:待验收
- 日期:2026-08-25
- Gitea 工单:#61
- Wiki 页面:Task-61-修正生成尝试状态展示
背景与目标
管理端此前读取接口中不存在的 attempt.succeeded 字段,导致任务刚启动时将任务认领事件和仍在执行的 Provider attempt 都立即显示为“失败”,并为非 Provider 事件显示虚假的“模型 #-”。本任务修正既有时间线的状态语义,不改变生成链路、接口或数据。
最终方案
- 提取 attempt 显示映射纯函数,集中处理标题、状态、视觉类型、时间和模型显示规则。
lease显示“任务认领 / 已认领”,且不显示模型编号。- Provider attempt 未结束且无错误时显示“进行中”;有
error_code时显示失败及现有脱敏错误;已结束且无错误时显示成功。 - 对旧数据缺失字段和未知事件类型提供稳定兜底,避免页面运行时异常。
- 页面继续复用原有时间线结构,不修改后端、数据库、配置、权限或上游调用行为。
修改文件
admin-ui/src/views/chorus/generations/helpers.js:新增 attempt 状态显示映射。admin-ui/src/views/chorus/generations/index.vue:时间线改用统一映射,移除错误的succeeded判断。admin-ui/tests/unit/chorus/generation-attempts.spec.js:覆盖认领、进行中、成功、失败和异常数据。
验收结果
| 验收标准 | 结果 |
|---|---|
| lease 显示任务认领且不显示虚假模型编号 | 通过 |
| 未完成 Provider attempt 显示进行中 | 通过 |
| 失败和成功状态按实际字段显示 | 通过 |
| 不调用真实上游,不修改配置或数据库 | 通过 |
| 完整生产双构建 | 未完成:宿主机提交内存不足导致 module bundle 的 Node 进程 OOM;legacy bundle 已编译成功 |
测试
- 目标 ESLint:通过。
- 目标 Jest:6/6 通过。
- Chorus 管理端单元测试:5 个 suite、18 个测试全部通过。
python dev_scripts/harness.py check --strict:通过。- Supervisor 管理端 UI 开发构建完成,
http://127.0.0.1:9528/返回 HTTP 200。 - 未验证部分:完整
build:prod的第二套 module bundle 因宿主机内存资源不足未完成;未发现本工单代码编译错误。
遗留问题
generation #11 后续约 300 秒以 route_unavailable 真实失败,属于上游超时问题,不在本工单范围内。
相关提交
dfeedb0fix: 修正生成尝试状态展示 (#61)