3bae4cdbb0
上一轮只堵了通道末端,父 run 仍然停在 needs-reconciliation:子 Agent 输出 518 字符的合法问询,在源头 last_response 处就被切成 501 字符,剥掉信封首行后 正好 1120 字节,父 run 解析时在字符串中途 EOF。 信封是结构化协议载荷,只是恰好借用了「子 Agent 自由回复」这条文本通道。定界 本身要保的三件事——状态快照与只增审计日志不被自由文本撑爆、子 Agent 文本不无 限量灌进父 Agent 上下文、摘要行只占一行——对信封都已由问询 schema 逐字段硬性 校验保住,再叠一层盲切只会砍断 JSON。 改为共有一条上限规则 static_delegate_result_detail_max_chars:字面以信封首行 开头时取 schema 推导的上限,否则原样走各自的 500/600/240。通道上四处定界全部 接上——last_response、terminal_detail、回执发布、复用既有终态时的摘要,其中 后者把「给人看的摘要」和「给解析的明细」拆成两个值,不再让一行摘要的长度决定 结构化载荷能不能被解析。last_response 与 terminal_detail 必须同源,两者逐字 相等是 finalization 幂等校验的不变式。 非信封文本走的分支与改动前完全一致,做游戏链路(含 codex)不产出该信封,行为 不变。 回归用例覆盖源头与通道两端,并钉住「普通自由回复仍被截到 500 字符」。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>