问题描述
在 OpenFic 0.11.0 桌面版中,对正在进行写作任务的会话执行「回滚」操作,会触发一条相关联的故障链,最终导致子代理(如 Composer)写入笔记失败:
回滚本身报 500:revision 数据回滚成功后,随后的 LangGraph checkpoint 回滚失败,接口返回 500,且同一次回滚在日志中连续报错多次:
app.api.routers.agent_runtime:rollback_agent_session - Agent graph checkpoint rollback failed after revision rollback
POST /api/v1/agent/sessions/{session_id}/rollback 500 Internal Server Error
这造成 revision(数据层)与 graph checkpoint(会话状态层)不一致——数据已回滚,但会话的检查点未同步。
在途子代理写入失败:回滚前已派发、回滚后才实际执行写入的子代理继续运行。write_note / write_chapter 等工具要求当前 revision 存在才能写入(current_revision_id_from_state 缺失时报「缺少当前 revision,无法执行笔记写入」),而父会话 revision 已被回滚作废,子代理带着失效 revision 执行 → 写入被拒,子代理记录报错:
error: parent revision rolled back
界面显示「工具未执行」/「subagent request failed」。
失败子代理残留:此类失败的子代理未被正确清理,残留 is_active=1, status=error 的记录,可能污染后续会话状态(如 notify_subagent 误投递到已失效的会话)。
复现步骤
复现步骤
1.在主会话中派发一个子代理执行笔记写入任务(例如让 Composer 为章节设计详细大纲)
2.在子代理尚未完成时,对主会话执行一次回滚(界面上的回滚按钮 / POST /sessions/{session_id}/rollback)
3.观察结果:
回滚接口返回 500,日志出现 Agent graph checkpoint rollback failed after revision rollback
子代理继续执行后写入失败,界面出现「工具未执行」或「subagent request failed」
数据库 agent_child_runs 表出现 status='error' 且 is_active=1 的残留记录
日志、截图或录屏
18:04:24 | ERROR | rollback_agent_session - Agent graph checkpoint rollback failed after revision rollback
18:04:24 | ERROR | POST /api/v1/agent/sessions/{session_id}/rollback 500 Internal Server Error
18:19:16 | WARNING | Agent 工具执行失败: 工具未执行
18:19:17 | WARNING | Agent 工具执行失败: subagent request failed
| dispatch_id={...}, agent=composer, error: parent revision rolled back
OpenFic 版本
0.11.0
运行系统
Windows
运行平台
桌面端
提交前检查
问题描述
在 OpenFic 0.11.0 桌面版中,对正在进行写作任务的会话执行「回滚」操作,会触发一条相关联的故障链,最终导致子代理(如 Composer)写入笔记失败:
回滚本身报 500:revision 数据回滚成功后,随后的 LangGraph checkpoint 回滚失败,接口返回 500,且同一次回滚在日志中连续报错多次:
app.api.routers.agent_runtime:rollback_agent_session - Agent graph checkpoint rollback failed after revision rollback
POST /api/v1/agent/sessions/{session_id}/rollback 500 Internal Server Error
这造成 revision(数据层)与 graph checkpoint(会话状态层)不一致——数据已回滚,但会话的检查点未同步。
在途子代理写入失败:回滚前已派发、回滚后才实际执行写入的子代理继续运行。write_note / write_chapter 等工具要求当前 revision 存在才能写入(current_revision_id_from_state 缺失时报「缺少当前 revision,无法执行笔记写入」),而父会话 revision 已被回滚作废,子代理带着失效 revision 执行 → 写入被拒,子代理记录报错:
error: parent revision rolled back
界面显示「工具未执行」/「subagent request failed」。
失败子代理残留:此类失败的子代理未被正确清理,残留 is_active=1, status=error 的记录,可能污染后续会话状态(如 notify_subagent 误投递到已失效的会话)。
复现步骤
复现步骤
1.在主会话中派发一个子代理执行笔记写入任务(例如让 Composer 为章节设计详细大纲)
2.在子代理尚未完成时,对主会话执行一次回滚(界面上的回滚按钮 / POST /sessions/{session_id}/rollback)
3.观察结果:
回滚接口返回 500,日志出现 Agent graph checkpoint rollback failed after revision rollback
子代理继续执行后写入失败,界面出现「工具未执行」或「subagent request failed」
数据库 agent_child_runs 表出现 status='error' 且 is_active=1 的残留记录
日志、截图或录屏
OpenFic 版本
0.11.0
运行系统
Windows
运行平台
桌面端
提交前检查