AtomCode v5.0.9 新子系统深度分析 — Live Runtime 控制平面与提交收据协议
基于
stringsACP 客户端错误面 + WebUI 状态机 + 模块路径的还原分析 2026-09-09 前置报告:05-version-diff-v4.25.5-to-v5.0.9.md姊妹报告:35_Daemon_WebUI.md(daemon/ws 层)、40_Execution_Policy_Intervention.md(policy 干预)、44_Session_Persistence_Context_Compaction.md(快照/持久化)
1. 源码模块(全新)
crates/atomcode-daemon/src/
├── native_live.rs ← 原生 live runtime(提交控制面)
├── live_hub.rs ← live 事件集线器
├── runtime_host.rs ← 运行时宿主(进程管理)
├── kernel_runtime.rs ← 内核运行时
└── commands.rs ← daemon 命令面→ 5 个新模块:v5.0.9 把"运行时"从单一直通进程升级为 native_live 控制平面 + live_hub 事件分发 + runtime_host/kernel_runtime 生命周期 的分层宿主。
2. 提交协议(Submit → 收据)
2.1 Submit 操作面(ACP/WebUI 客户端)
live runtime rejected the message
live runtime did not accept the user input answer
live runtime did not accept the policy intervention resolution
live runtime rejected the mode switch / session switch / reasoning effort
live runtime rejected the stop request→ 六类 submit/control 操作:消息、用户输入答复、policy 干预决议、 模式切换、会话切换、推理强度、停止请求 —— 每类都有被拒语义("not accept"/"reject")。
2.2 提交收据(Submit Receipt)
live runtime returned an invalid submit receipt
return { disposition: o.disposition, generation: o.generation, turn_id: ... }
if (o.disposition === void 0) return { disposition: `started`, generation: 0, turn_id: 0 }→ 提交返回结构化收据:{ disposition, generation, turn_id } 三字段; disposition 缺省即 started(乐观默认)。客户端强类型校验(非法收据抛错)。
2.3 Disposition 状态机
started / steered / paused / paused_at_cap / denied / interrupted / ending / error
provider_change_applied
undoactive_turn→ 提交后可观察处置状态:已启动、被引导(steer)、暂停(paused/paused_at_cap)、 拒绝、打断、结束中、错误;provider_change_applied 标记 provider 热切换。
3. active_turn 并发门禁
return e ? { allowed: false, reason: `active_turn` } : { allowed: true }
activeTurn: n.active_turn === true
session_id required for undo / active_turn / disposition / started / generation→ active_turn 锁:已有活跃回合 → 拒绝新提交(reason: active_turn); 撤销/控制操作需 session_id + 当前 turn 状态。
4. 生命周期与并发保护
live runtime started without a persistent session
failed to stop previous live runtime
cannot replace an active live runtime
discarded stale live runtime event
live runtime session snapshot unavailable→ 四条守护:无持久会话不可启动;替换活跃 runtime 被拒; 旧 runtime 未停即报错;过期事件丢弃;会话快照不可得时给出明确空白。
5. 与既有系统的关系
| 系统 | 关系 |
|---|---|
| DEEP_ANALYSIS_35 Daemon/WebUI | WS 传输之上新增运行时控制面(submit/stop/steer) |
| DEEP_ANALYSIS_40 Policy 干预 | policy intervention resolution 走 live runtime 提交流 |
| DEEP_ANALYSIS_44 Session 快照 | 引用 live runtime session snapshot(可与原生快照联动) |
| ACP v2(32) | 客户端侧 rejected/receipt 对齐 ACP turn 语义 |
| DEEP_ANALYSIS_41 next_prompt | steered 状态对应 next_prompt 引导提交 |
6. 逆向方法论备注
live runtime (rejected|did not accept) the <op>枚举六类控制操作return { disposition: o.disposition, generation, turn_id }还原提交收据 schemadisposition缺省started+ 非法收据抛错 = 乐观校验协议reason: active_turn暴露回合并发锁cannot replace an active live runtime/discarded stale live runtime event揭示一次性 runtime + 事件去重native_live.rs / live_hub.rs / runtime_host.rs / kernel_runtime.rs= 分层宿主模块边界直接证据
本报告由持续分析循环生成 — v5.0.9 Live Runtime 控制平面与提交收据协议深度分析