feat: add async resume jobs and doc navigation

This commit is contained in:
root
2026-04-14 15:55:02 +08:00
parent 6705613aa4
commit b8727f1885
26 changed files with 2791 additions and 665 deletions
+48 -5
View File
@@ -12,11 +12,16 @@
开始编码前必须阅读:
1. `plans/reader-mcp-architecture-design.md`
2. `plans/reader-mcp-implementation-plan.md`
3. 本文件
4. `plans/issues/2026-04-06-reader-digest-sigterm.md`
5. `docs/openclaw/openclaw-handoff.md`
1. `README.md`
2. `docs/README.md`
3. `docs/openclaw/README.md`
4. `docs/openclaw/openclaw-handoff.md`
5. `docs/openclaw/openclaw-orchestration-flow.md`
6. `plans/README.md`
7. `plans/reader-mcp-architecture-design.md`
8. `plans/reader-mcp-implementation-plan.md`
9. 本文件
10. `plans/issues/2026-04-06-reader-digest-sigterm.md`
---
@@ -184,6 +189,43 @@
- 2026-04-07:已完成 `resume_run` minimal design 与现有 runtime/workflow/server 代码对齐分析,开始实现最小恢复链路。
- 2026-04-07:已完成 `resume_run` 最小实现编码,新增 runtime 恢复服务并接入 MCP server;当前进入设计对齐与本地自检。
- 2026-04-07:已完成 `resume_run` 架构对齐与本地自检;已验证 `write_run_report` 可恢复,且 `extract_articles` 会被明确拒绝恢复。
- 2026-04-14:已补 `inspect_resume_plan`、artifact-first 恢复判定,以及生产模式下稳定 `summary-batch` / `candidate-batch` artifacts;当前 `resume` 的剩余主问题不再是恢复点判断,而是同步执行模型仍可能让 OpenClaw 恢复阶段超时。
---
### [DONE][P1] 把 `resume_run` 升级为最小真异步 job
目标:
- 解决 `resume_run` 在 OpenClaw → MCP 同步链路里仍可能超时的问题
- 让恢复也具备“启动 / 轮询 / 读取结果”的正式控制面
要求:
- 新增最小异步接口:
- `start_resume_job`
- `get_resume_job_status`
- `get_resume_job_result`
- 状态目录固定落到:
- `outputs/freshrss/resume_jobs/<job_id>/`
- 至少包含:
- `run-state.json`
- `input.json`
- `result.json`(成功时)
- `job-report.json`
- 启动前必须先走 `inspect_resume_plan`
- 业务执行继续复用现有 `resume_service`,不要重写恢复主逻辑
- `resume_run` 保留为同步 debug / fallback 路径,但不再作为 OpenClaw 的默认恢复入口
完成标准:
- 可恢复 run 上,`start_resume_job` 能成功返回 `job_id`
- `get_resume_job_status` 能稳定反映恢复 job 生命周期
- `get_resume_job_result` 能稳定返回 `run_id`、`resume_from_stage`、最终状态与关键产物路径
- 恢复耗时超过单次 MCP 同步窗口时,OpenClaw 仍不会因为同步调用挂住
进展备注:
- 2026-04-14:已落地 `src/summary_mcp/runtime/resume_jobs.py` 与 `scripts/run_resume_job.py`,新增 `start_resume_job` / `get_resume_job_status` / `get_resume_job_result`
- 2026-04-14:启动前会先走 `inspect_resume_plan`;不可恢复 run 会在 job 输入校验阶段直接失败,不进入后台恢复执行
- 2026-04-14:后台执行复用现有 `_resume_freshrss_run(...)`,没有重写恢复主逻辑
- 2026-04-14:已完成本地 synthetic 验证:`write_run_report` 恢复可通过 `start -> poll -> result` 闭环成功收敛
---
@@ -304,6 +346,7 @@
- 2026-04-07:新增架构设计文档 `plans/reader-mcp-architecture-design.md`
- 2026-04-07:新增实施计划文档 `plans/reader-mcp-implementation-plan.md`
- 2026-04-07:完成 `freshrss` pipeline 的 run-state 基础设施,新增 `runtime` 包并覆盖关键 stages 状态持久化。
- 2026-04-14:已补 OpenClaw 文档导航、历史归档、design/notes/plans 导航,并统一当前正式口径为 async job 编排入口。
### 风险提醒