OpenCode 任务状态管理问题:已完成的任务被重复执行

最近重度使用opencode,做任务时,明明任务已经执行完了,但新开一个 Session 后,Atlas 又把之前的任务重新执行一遍。

原因分析

OpenCode 用 boulder.json 文件来跟踪任务进度,文件位置在 ~/.sisyphus/boulder.json

{
  "active_plan": "/root/.sisyphus/plans/rsshub-installation.md",
  "completed_at": "2026-02-12T14:40:00.000Z",
  "final_status": "COMPLETED",
  "session_ids": ["ses_xxx", "ses_xxx"],
  "plan_name": "rsshub-installation"
}

问题出在两个方面:

1. boulder.json 指向错误的计划

  • 虽然 n8n-docker-install.md 计划中所有任务都标记为 - [x] 完成
  • boulder.jsonactive_plan 指向了另一个已完成的计划 rsshub-installation
  • 新 Session 找不到正确的计划

2. Session 连续性丢失

  • 多个 Session ID 记录在 boulder 中
  • 新 Session 不知道任务是否真的完成
  • 每次都从头开始

解决方案

方案 1:清理 boulder 状态(新 Session 前执行)

# 删除 boulder.json(清除所有状态)
rm ~/.sisyphus/boulder.json

或者手动重置:

cat > ~/.sisyphus/boulder.json << 'EOF'
{
  "active_plan": "/root/.sisyphus/plans/正确的计划名.md",
  "final_status": "COMPLETED"
}
EOF

方案 2:在计划末尾明确标记结束

.md 计划文件末尾添加:

---

## 计划状态

**状态**: ✅ 已完成
**完成时间**: 2026-02-12
**验证方式**: 所有任务标记为 - [x]

**注意**: 此计划已完全执行,无需再次执行。

预防措施

  1. 每次新 Session 前检查 boulder 状态
cat ~/.sisyphus/boulder.json
  1. 明确告诉 Atlas 跳过已完成的任务

  2. 不要手动修改 - [ ] 标记

文件位置参考

  • Boulder 状态文件:~/.sisyphus/boulder.json
  • 计划文件目录:~/.sisyphus/plans/
  • 学习记录目录:~/.sisyphus/notepads/

总结

这是一个 OpenCode 的状态管理边界问题:

状态 文件 问题
✅ 任务完成 计划 .md 文件 所有 - [x] 标记正确
❌ boulder 状态 boulder.json 指向错误的计划
⚠️ Session 连续性 - 新 Session 无法正确读取历史状态

解决方案:删除 boulder.json 或手动重置状态即可。

快速修复

新开 Session 遇到任务被重复执行时,运行:

rm ~/.sisyphus/boulder.json

然后重新开始即可。


Miniflux 私有 RSS 阅读器部署与订阅管理 Chrome Gemini 强制开启指南