Files
reader/TODO.md
T

152 lines
3.7 KiB
Markdown
Raw Blame History

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.
# TODO - Reader MCP 正式化
> 本文件用于架构与 Codex 协作同步。
>
> 规则:
> - `TODO` = 未开始
> - `DOING` = 正在进行
> - `DONE` = 已完成
> - 每次只允许一个最高优先级主任务处于 `DOING`
## 0. 协作约束
开始编码前必须阅读:
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. 当前主任务
### [DONE][P0] 建立 run-state 运行态基础设施
目标:
- 给 freshrss pipeline 引入正式 run state
- 即使失败或中断,也能留下明确运行真相
要求:
- 新增 `RunState / StageState / ArtifactRecord` 模型
- 在 `outputs/freshrss/rerun/<run_id>/run-state.json` 持久化
- 至少覆盖以下 stages:
- `fetch_feed`
- `extract_articles`
- `generate_summaries`
- `apply_filters`
- `build_delivery_payload`
- `write_run_report`
- 失败时写入失败阶段与错误摘要
- 不破坏现有输出目录兼容性
建议文件:
- `src/summary_mcp/runtime/state_models.py`
- `src/summary_mcp/runtime/run_store.py`
- `src/summary_mcp/workflows/...`
完成标准:
- 跑一次 pipeline 后,无论成功失败,都存在 `run-state.json`
- 文件中可看出当前/最后阶段、整体状态、关键 artifacts
进展备注:
- 2026-04-07:架构设计文档已建立;开始进入实现阶段。
- 2026-04-07:已新增 `runtime` 包骨架,落地 `RunState / StageState / ArtifactRecord` 与文件存储接口。
- 2026-04-07:已将 `run-state.json` 接入 `freshrss` 主流程,按阶段持续写入状态与关键 artifacts。
- 2026-04-07:已完成成功/失败路径自检,确认 `run-state.json` 在两类路径下都保留且不改变既有对外返回字段。
---
## 2. 后续任务队列
### [TODO][P1] 增加 MCP 状态查询接口 `get_run_status`
目标:
- 可通过 MCP 查询 run 状态
要求:
- 输入 `run_id`
- 返回 status / current_stage / completed_stages / failed_stage / artifacts / recovery
---
### [TODO][P1] 增加 MCP 查询接口 `list_runs`
目标:
- 查看近期 runs
要求:
- 支持按 workflow / status / latest_n 过滤
---
### [TODO][P1] 增加 MCP 查询接口 `list_run_artifacts`
目标:
- 统一列出 run 下 artifact
---
### [TODO][P1] 增加 MCP 结果读取接口 `get_delivery_payload`
目标:
- 按 run_id 读取 delivery payload
---
### [TODO][P1] 增加 MCP 结果读取接口 `get_run_report`
目标:
- 按 run_id 读取 run report
---
### [TODO][P2] 设计并实现 `resume_run`
目标:
- 基于 `run-state.json` 和现有中间产物继续执行
说明:
- 先做最小可用恢复
- 暂不追求任意 stage 任意重入
---
### [TODO][P2] 评估 `rerun_stage` 是否值得进入第一阶段
目标:
- 在 `resume_run` 之后评估是否继续增加更细粒度补跑能力
---
### [TODO][P2] 调整 `run_freshrss_openclaw_pipeline` 内部实现以复用 runtime
目标:
- 保持外部兼容
- 内部不再是黑箱长函数
---
### [TODO][P3] 更新 README / handoff / docs,明确 MCP 为正式入口
目标:
- 把生产建议从 CLI 迁移到 MCP
- CLI 明确降级为 debug / fallback
---
## 3. 记录区
### 已完成记录
- 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 状态持久化。
### 风险提醒
- 不要在第一阶段引入复杂任务队列
- 不要让 CLI 和 MCP 背后变成两套独立逻辑
- 若实现偏离架构,先更新 `plans/` 再改代码