feat: improve goal mode and Codex App resilience

This commit is contained in:
shiyue
2026-08-18 21:27:58 +08:00
parent 389690af64
commit 8fe31e0a5e
27 changed files with 631 additions and 24 deletions

View File

@@ -0,0 +1,5 @@
{"file":".trellis/spec/backend/error-handling.md","reason":"核验错误分类、重试上限与最终失败行为"}
{"file":".trellis/spec/backend/quality-guidelines.md","reason":"核验后端测试与代码质量"}
{"file":".trellis/spec/frontend/state-management.md","reason":"核验重连状态、计数和任务终态一致性"}
{"file":".trellis/spec/frontend/quality-guidelines.md","reason":"核验前端测试与代码质量"}
{"file":".trellis/spec/guides/cross-layer-thinking-guide.md","reason":"核验跨层事件契约和恢复后的数据流"}

View File

@@ -0,0 +1,5 @@
{"file":".trellis/spec/backend/error-handling.md","reason":"约束临时服务错误、终态错误和重试边界的处理方式"}
{"file":".trellis/spec/backend/quality-guidelines.md","reason":"约束后端实现与回归测试质量"}
{"file":".trellis/spec/frontend/state-management.md","reason":"约束重连计数和运行终态的前端状态管理"}
{"file":".trellis/spec/frontend/quality-guidelines.md","reason":"约束前端实现与测试质量"}
{"file":".trellis/spec/guides/cross-layer-thinking-guide.md","reason":"重试链路跨越 app-server、SSE/WebSocket 与前端状态机,需要校验边界契约"}

View File

@@ -0,0 +1,27 @@
# 修复 Codex App 重试中断
## 问题
Codex App 遇到临时 503 或网络错误时,界面虽然连续显示自动重试与“从中断处继续”,但当前任务仍被终止。第五次附近还会先展示终端 503,再把重连计数重置为 `1/5`,造成状态与真实执行不一致。
## 需求
1. 可恢复错误进入统一的续跑状态,不提前关闭当前任务。
2. 同一恢复周期的尝试次数单调递增,不因终端事件或传输重连错误重置。
3. 每次自动重试必须真正续接原线程/任务,而不只是显示通知。
4. 恢复成功后清理重试状态并继续流式输出。
5. 达到重试上限后才进入明确失败终态,并保留可理解的错误原因。
## 验收标准
- 自动化测试复现“连续临时失败后仍续跑”的场景,并在修复前失败、修复后通过。
- 自动化测试验证计数不会在同一恢复周期中从 `5/5` 错误回到 `1/5`。
- 自动化测试验证成功恢复与耗尽重试两种终态。
- 现有 Codex App 相关回归测试和静态检查通过。
## 非目标
- 不修改上游 provider 的可用性或调度策略。
- 不把不可恢复的协议、鉴权或用户输入错误纳入无限重试。
- 不重做现有视觉主题。

View File

@@ -0,0 +1,31 @@
{
"id": "codexapp-retry-resume",
"name": "codexapp-retry-resume",
"title": "修复 Codex App 重试中断",
"description": "",
"status": "completed",
"dev_type": null,
"scope": null,
"package": null,
"priority": "P2",
"creator": "shiyue",
"assignee": "shiyue",
"createdAt": "2026-08-18",
"completedAt": "2026-08-18",
"branch": null,
"base_branch": "main",
"worktree_path": null,
"commit": null,
"pr_url": null,
"subtasks": [],
"children": [],
"parent": null,
"relatedFiles": [
"lib/codex-app-runtime.js",
"scripts/mock-codex-app-server.js",
"scripts/regression.js",
".trellis/spec/backend/error-handling.md"
],
"notes": "区分 Codex App 重连过程通知与终端错误;定向及完整回归通过。",
"meta": {}
}