# R5.4 任务报告

## 结论

已解决 [AgentRun #319](https://github.com/pikasTech/agentrun/issues/319) 的 session new-turn 半提交问题。AgentRun PR #321 已合并至 `v0.2`，自动发布对齐 source `65341323228f5bd14a77689da9a1a28558366a15`、GitOps/Argo `284d7b617d653f2d84071d534e69cc5955d34028` 与 runtime digest `sha256:3d627190bb24bd9f47b7592cfccb54aaeb5517cc17257b5160b06c5727dff621`。

## 修复合同

- `session send` 不再在 HTTP handler 内同步执行 kubectl 后留下 run/command 半提交；run、command、正式 user/run-created/command-created 事件、Kafka outbox 与 durable runner dispatch intent 形成原子接纳。
- PostgreSQL 以 session advisory transaction lock 串行化接纳；Memory store 在失败时完整回滚。
- 相同 prompt/idempotency 对历史半提交对象执行原位 recovery：复用 run/command 和冻结的 workspace/resource bundle，只新增一个 `runner-dispatch-recovered` 事件。
- durable dispatcher 负责自动重试；终态失败原子更新 intent、command、run、session，并写入 retry/failure/command-terminal/terminal_status，释放 session active identity。
- `runnerAdmission` 明确 disposition、durable、planned identity、retryable 与 `retryAuthority=dispatcher`，不把 planned runnerJobId 冒充已创建 Kubernetes Job，也不提示用户重复 send。
- failureKind/reason 只接受类型化来源及 machine-code 校验，不从错误文案猜测；Kubernetes observation/create/adopt 源头提供 bounded/redacted typed reason。

## 验证

主代理独立运行 5 组相关 self-test，共 90 项通过，覆盖 Memory rollback、PostgreSQL 原子性、并发/idempotent replay、restart recovery、fake kubectl observation/create failure、dispatcher retry/terminalization、成功 same-session continuity 与 Kafka durable outbox。

真实固定 session `sess_artificer_cc656ee9c7ceb49aba519e32` 使用完全相同 prompt 重试后：

- 返回 `disposition=recovered`、`recoveredPriorPartialWrite=true`；
- 精确复用 `run_22008379b6ac48e188032c1091c0741b` 与 `cmd_b6e156371b454dd1a6e7e45d6c2fdeaa`；
- 原 seq=1 user_message、seq=2 run-created、seq=3 command-created 均未重复；seq=4 仅新增 `runner-dispatch-recovered`；
- 后续真实 K8s observation 失败产生类型化 retry，并正规写入 runner-dispatch-failed、command-terminal、terminal_status，session 转为 terminal/active=false，不再永久 waiting-runner。

## 后续分流

本次真实验收同时发现 manager 内 `kubectl get jobs` exit=1，导致 Artificer backend 尚未建立。该独立运行面能力问题已登记为 [AgentRun #322](https://github.com/pikasTech/agentrun/issues/322) 与 R5.5；它不回退或否定本项已验收的原子接纳、恢复与终态合同。
