Files
Genarrative/apps
lhk229 5fa662be30 立项策划:收口 M1A 复核残余,retry 强判据前置且身份哨兵改为编译期约束
retry 强判据必须排在全部分支之前。plan 分支原先排在 delegated 与
autonomous-game-build 之后,两支都能绕开
reject_supervisor_plan_root_retry_without_identity:

一是 plan source 配伪造 parent 会落 delegated 支,直接返回
agent-delegate-retry,强判据根本不执行。二是 binding.source 是 plan 配
autonomous profile 会落 autonomous 支,因 plan 在可信集合内而被原样取回,
复活启动路径 reject_supervisor_plan_autonomous_profile 明令禁止的组合。

两者都要 durable 状态先畸变才可达,但强判据存在的意义正是对畸变状态
fail closed。守卫提到函数开头无条件执行,合法 plan 根 run 对它恒真;
plan 分支不再重复读 durable 状态。autonomous 支另加一次
reject_supervisor_plan_autonomous_profile,兜住顶部守卫按 task.source
判定所挡不住的那一种。回归已用变异测试确认去掉任一守卫即变红。

__all_agents__ 身份哨兵改为编译期约束。四个不带 agentId 的 wrapper 会以
哨兵跳过按身份的工具面收窄与原始工具 identity 复核,M1A-2 之后调用点只剩
测试,但将来新增生产调用点漏改是静默拿全量目录而非编译失败。四个 wrapper
与对应 re-export 一并加 cfg(test)。该哨兵已扩散到两个文件,是正在复制的
模式而非单点遗留。

订正 M1A-3 决策条里「agent-background-task 唯一构造点」的错误结论:
task_start 与 recovery_scan 各还有一处同形状的空 source 兜底,且
recovery_scan 那条不经过 plan 根强判据。经复核有意不改,理由随条记录。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 05:20:18 +00:00
..
2026-07-17 16:56:46 +08:00