feat(orchestrator): 会话状态机实现 + cancelled/resume(T3 架构审查整改)
- Issue3: 新建 src/genesis/state_machine.py(9 状态白名单转移) - cancel 记录 cancelled_from 进 cancelled 终态,resume 回中断点 - 仅执行中状态可取消(awaiting_*/done 不可),非法转移抛 StateTransitionError - 同步 agent-runtime-design.md §3.2(状态图/规则表 9 状态 + cancelled 行) - 新增 10 用例(含覆盖补齐 2 项),全量 177 passed / 100.00%(981 stmts/252 br)
This commit is contained in:
@@ -231,9 +231,12 @@ class PromptRegistry:
|
||||
├──(校验通过)──────► ⑧ done
|
||||
└──(需修正重生成)──► ⑥ writing
|
||||
|
||||
状态集(8 个):
|
||||
执行中任意状态 ──(用户取消 /api/sessions/{id}/cancel)──► ⑨ cancelled
|
||||
⑨ cancelled ──(resume)──► 回到中断前状态(cancelled_from,继续白名单流转)
|
||||
|
||||
状态集(9 个,含 T3 整改新增 cancelled):
|
||||
uploading → parsing → awaiting_parse_confirm → impact_running
|
||||
→ awaiting_impact_confirm → writing → qa → done
|
||||
→ awaiting_impact_confirm → writing → qa → done | cancelled
|
||||
```
|
||||
|
||||
**状态转移规则:**
|
||||
@@ -241,16 +244,18 @@ class PromptRegistry:
|
||||
| 当前状态 | 允许转移 | 触发 |
|
||||
|---------|---------|------|
|
||||
| uploading | parsing | 文件上传完成 |
|
||||
| parsing | awaiting_parse_confirm | 解析完成 |
|
||||
| parsing | awaiting_parse_confirm / cancelled | 解析完成 / 用户取消 |
|
||||
| awaiting_parse_confirm | impact_running / parsing | 确认 / 修正后重解析 |
|
||||
| impact_running | awaiting_impact_confirm | 影响调查完成 |
|
||||
| impact_running | awaiting_impact_confirm / cancelled | 影响调查完成 / 用户取消 |
|
||||
| awaiting_impact_confirm | writing / impact_running / awaiting_parse_confirm | 确认 / 修正重推 / 打回解析 |
|
||||
| writing | qa / awaiting_impact_confirm | 全章完成 / 用户要求回退 |
|
||||
| qa | done / writing | 校验通过 / 需修正重生成 |
|
||||
| done | — | 终态 |
|
||||
| writing | qa / awaiting_impact_confirm / cancelled | 全章完成 / 用户要求回退 / 用户取消 |
|
||||
| qa | done / writing / cancelled | 校验通过 / 需修正重生成 / 用户取消 |
|
||||
| done | — | 终态(不可取消) |
|
||||
| cancelled | 中断前状态(cancelled_from)| resume(仅 cancelled 可 resume;人工等待确认态 awaiting_* 与 done 不可取消)|
|
||||
|
||||
- **非法转移直接拒绝**(如 uploading → writing 不合法)
|
||||
- **非法转移直接拒绝**(如 uploading → writing 不合法;cancelled → done 不合法)
|
||||
- 回退规则由白名单约束(如 awaiting_impact_confirm → awaiting_parse_confirm 合法)
|
||||
- 取消语义:cancel 记录中断前状态到 cancelled_from,进入终态;resume 回到中断点后按白名单继续推进
|
||||
|
||||
### 3.3 人工介入点定义
|
||||
|
||||
|
||||
Reference in New Issue
Block a user