docs(notes): record the parent-only-override snapshot path and pickup shape

The snapshot-coverage consequence names the deployment-strength limit, why
the automation protocol cannot express a parent-only override, and the
headless semantic-checkpoint precedent (seeded parent log + resume fixture
plugin) as the pickup shape — so the deferred scenario is not re-derived.
This commit is contained in:
kingwl
2026-07-26 22:07:05 +08:00
parent f505bd9258
commit 1a11c0dbcf
3 changed files with 4 additions and 2 deletions
@@ -34,4 +34,5 @@ Status: implemented
- 父级收紧后的沙箱模式与 `'never'` 审批立场现在会约束 spawn 子 agent、fork 子 agent(无论种子时机如何)与孙代 agent;委派旁路在每一层深度都已封死,且不存在任何第一轮次的时序窗口(否决、注入、崩溃)。该行为由 `packages/subagent/subagent-inprocess/tests/inheritance.spec.ts` 中的真实围栏测试套件钉住(脚本化模型驱动的子 agent 通过真实 `write` 工具撞上真实的 `dsh-fs-sandbox` 围栏,按落盘状态与拒绝标记断言——其中包括委派与延迟切换之间的竞态用例、一个具备否决能力的 prompt-submit 监听器用例,以及子 agent 任何轮次开始前的会话头持久性用例),并由两个服务各自测试套件中的 `overrideOf` 契约测试钉住(基线读取、种子边界优先级、封闭词汇拒绝)。
- 基线随 `SessionHeader` 通过两个持久化后端存储(JSONL 头部行字段;SQLite `sessions` 表中的列,`SCHEMA_VERSION` 提升到 11——预发布阶段,无迁移),因此恢复时它像 `delegationDepth` 一样被还原;子 agent 之后仍可被独立切换,其自身种子之后的事件优先于基线。
- 已接受的限制:子 agent 已在运行时父级再做的切换不会传播(快照语义);进程外后端(`subagent-acp`、子进程形态的子 agent)在这里不继承任何内容:它们的策略归子 harness 自身的部署所有,属于沙箱 Agent Note 中延后的阶段。
- 快照覆盖只运行在部署强度上:已录制的 `subagent-sandbox-inheritance` 场景经由组装后的 ACP 应用,证明了一个被委派的子 agent 被约束在只读的部署级策略之下,但这个仅面向自动化的协议没有会话作用域的切换,因此仅父级的覆盖项(更宽的默认值、收紧的父级、被拒的子 agent)在该协议上无法表达。待接手时,其形态沿用 headless 套件的语义检查点先例:预置一份携带真实 `sandbox/mode` 切换的已持久化父级日志,经由一个恢复用的 fixture(测试前置数据)插件在 Loader 启动的 cli-demo 应用中恢复它,再让它发起委派——这是一次场景 harness 的扩充(headless 套件尚无 subagent+沙箱 overlay),而非新机制。
- `dsh-subagent-inprocess` 将 `dsh-sandbox-policy` 与 `dsh-user-approval` 声明为对等依赖(peer dependency),以支撑 `ctx.get` 的类型;两者在运行时仍然可选。`SessionHeader` 新增两个中性的可选字符串字段;`SESSION_FORMAT_VERSION` 保持为 0(仅新增字段,预发布阶段)。