Runtime:统一 Work 路径与 runtime-v2.1 遗留(tip 对齐)
图:新人默认进
compare(同屏对照:统一 Work(唯一入口)vs runtime-v2.1 遗留 vs 生产切流未核实);main= 统一 Work 提交 + 观察路径。钉点:Agente2adc9a3c325· Desktop8eecd12081db。 先读本机制说明,结论以 NOTES + evidence 为准。
读法:先分「tip 代码」与「部署事实」
| 身份 | tip 代码 | chat 入口 | 生产 / 部署(核实范围) | 说明 |
|---|---|---|---|---|
| runtime-work-v1(统一 Work) | 有:ChatSubmissionStore.admit → bindAdmittedWork 写 command_envelope、C0 效果位置、original_root_run_id |
原 Work 身份;提交 wire 支持 work-v1 与匹配 policy 的 skill-v2(缺省/空值须无 policy) | 仅静态源码;未做正式环境巡检 | RUNTIME_WORK_PROTOCOL + FILE_WORK_PROFILE |
| runtime-v2.1 文本切片 | 遗留:durableText 分支与 Worker prepareText 仅处理存量 v2.1 Run;RUNTIME_EXECUTION_PROTOCOL 常量仍在 |
已移除:头为 v2.1 → 426 RUNTIME_EXECUTION_PROTOCOL_UNSUPPORTED |
— | Desktop register-runtime-v2-ipc / runtime-v2-core-contract / agent-loop 合同已删除 |
| 生产全量切流 | — | — | 未核实 | 代码收敛不等于部署证明;hostAdmission / RUNTIME_HOST_CONVERGENCE 已删除(见 ATLAS-DEBT) |
代码收敛 ≠ 生产启用。 分栏同 write-authority:未核实的部署事实禁止画成已落地。
目录统一
packages/agent/src/runtime-v2/ 已并入 packages/agent/src/runtime/(execution / local / work / continuation…)。主题 id 仍为 runtime-v2-status,叙述以协议身份为准,不以旧目录名为准。
统一 Work 路径(main 图)
- Desktop Main 经
RuntimeWorkIpcCoordinator.submitSubmission提交;同一 Coordinator 负责观察与 Stop 投影(Desktop91a25b75/7470e12e)。 - Gateway
/api/chat:X-AIDA-Runtime-Protocol有值且 ≠runtime-work-v1→ 426RUNTIME_EXECUTION_PROTOCOL_UNSUPPORTED。 - direct(带 agentId)与 routed(无 agentId)提交都经
ChatSubmissionStore.admit以runtimeWork受理(首轮同事务创建 Conversation + Session;钉点e2adc9a3c325起runtimeWork必填,旧runtimeExecution分支与CHAT_SUBMISSION_PROTOCOL_CONFLICT已删除,Agent9a3e49ec1),由bindAdmittedWork绑定(Agent87db143e)。占用检查不再锁已有 root(ADR-0094),并排除后台 root(ADR-0095,见scaling-roles)。 RunExecutionWorker在 chat role 装配,从 PostgreSQL 队列领取执行,并经workbenchExecution驱动 routed Work。
runtime-v2.1 遗留
durableText(options.runtimeProtocol === RUNTIME_EXECUTION_PROTOCOL)与 Worker 的 prepareText 仍在,只处理存量 v2.1 Run;chat 不再产生新的 v2.1 Run。
未核实
- 生产是否已全量切到统一 Work 路径。
- 未承诺自动重发模型 / 工具级恢复。
- 入口叙事见
enterprise-tour-narrative。
证据与范围
aida-agent·packages/tool-client/src/types/runtime-execution.ts·RUNTIME_EXECUTION_PROTOCOL/RUNTIME_WORK_PROTOCOL·e2adc9a3c325aida-agent·packages/agent/src/runtime/work/run-work-admission.ts·bindAdmittedWork·e2adc9a3c325aida-agent·packages/agent/src/gateway/orchestrator-runtime.ts·durableText·e2adc9a3c325aida-agent·packages/agent/src/runtime/execution/run-execution-worker.ts·RunExecutionWorker·e2adc9a3c325aida-agent·packages/agent/src/index.ts·workbenchExecution·e2adc9a3c325aida-agent·packages/agent/src/session/chat-submission-store.tsL378–393 ·async admit·e2adc9a3c325aida-agent·packages/agent/src/gateway/chat-routes.tsL381–421 ·RUNTIME_EXECUTION_PROTOCOL_UNSUPPORTED·e2adc9a3c325aida-desktop·apps/desktop/electron/agent-loop/register-runtime-work-ipc.tsL254–279 ·submitSubmission·4346d79eb364
结论来自固定版本的静态源码与合同阅读;实现存在、默认开关和生产启用分别判断。
Runtime 提交 wire 与原 Work identity
chat POST 的 Runtime 提交门接受缺省/空值(无 policy)、runtime-work-v1(无 policy),以及 runtime-work-skill-v2 且携带合法 skillExecutionPolicy;其他非空头为 RUNTIME_EXECUTION_PROTOCOL_UNSUPPORTED,头与 policy 不匹配为 RUNTIME_WORK_SKILL_POLICY_MISMATCH,均返回 426。原 Work binding 仍是 runtime-work-v1;取消提交、补充材料等路由单独判定,见协议地图。
证据:提交门 与 实际 chat POST 调用。