{
  "repo": "core",
  "version": "7.45.0",
  "from": "73002f2fdbd4de6991332f8173fa826e8186f970",
  "to": "185f5debffa0c4e6e5104f58db12586b2839ba8f",
  "added": [
    {
      "name": "HOST_DECIDERS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/gate-outcome.ts:127",
        "src/index.ts:1490"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "HeldQuestion",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/real-approval.ts:40",
        "src/index.ts:1491"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "HostDecider",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/gate-outcome.ts:128",
        "src/index.ts:1490"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SCOPE_HOME_FORMS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1145",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SCOPE_HOME_NOT_DIRECTORY",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1142",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "STORE_FORM_REFUSAL_CODES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1135",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ScopeHomeForm",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1146",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StoreFormRefusal",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1163",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StoreFormRefusalCode",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1136",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StoreFormRefusalDetail",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1158",
        "src/index.ts:2422"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "TARGET_OUTSIDE_STORE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/layout.ts:1139",
        "src/index.ts:2422"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "USER_INPUT_UNDRAINED_FAMILIES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/engine-notice.ts:1050",
        "src/core/types.ts:55",
        "src/index.ts:360"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "UserInputLane",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/task-notification.ts:68",
        "src/index.ts:1006"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "injectionLaneOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/task-notification.ts:77",
        "src/index.ts:1005"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "isHostDecider",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/gate-outcome.ts:129",
        "src/index.ts:1490"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "policyCannotAnswer",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/real-approval.ts:62",
        "src/core/tool-policy.ts:8",
        "src/index.ts:1491"
      ],
      "criteriaCovered": false,
      "breaking": false
    }
  ],
  "removed": [],
  "changed": [],
  "narrowed": [
    {
      "id": "F6",
      "source": "behaviorFlips.after",
      "text": "v7.45.0: each entry is mapped to its tool name before the narrowing policy is built — `Edit(src/**)`, `Edit()`, `Edit(*)` and `Edit` deny the tool `Edit` for the leg and nothing else; `\"Edit \"` and `Bash(` throw `config.agent.unknown_tool` naming `workflow agentType \"<name>\"`; a name no tool carries still builds a policy that denies nothing."
    },
    {
      "id": "F19",
      "source": "behaviorFlips.summary",
      "text": "BEHAVIOR NARROWING (#1403): a removal whose target is a protected location — the filesystem root, a top-level directory, a home directory, the task root / working directory / an additional working directory or an ancestor of one, or a shell script built only when the command runs that may run a removal — is the mandated class `dangerous_delete` (`ASK_CLASSES` +1): no permission mode, allow-layer member or classifier clears it."
    },
    {
      "id": "G20",
      "source": "criteria.title",
      "text": "#1395 — on a narrowed read face a shell read outside the roots (or one the station cannot place) is put to the approval seat under `auto`, not to the classifier; the card is the probe card `default` gives"
    }
  ],
  "closedSetMembers": [
    {
      "set": "ASK_CLASSES",
      "at": [
        "src/core/ask-origin.ts:601"
      ],
      "newSet": false,
      "added": [
        "dangerous_delete"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "DangerousRemovalKind",
      "at": [
        "src/tools/fs/removal-targets.ts:33"
      ],
      "newSet": true,
      "added": [
        "filesystem_root",
        "home",
        "runtime_script",
        "top_level",
        "workspace"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "HOST_DECIDERS",
      "at": [
        "src/core/gate-outcome.ts:127"
      ],
      "newSet": true,
      "added": [
        "person",
        "policy",
        "sla_timeout"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "HostDecider",
      "at": [
        "src/core/gate-outcome.ts:128",
        "src/index.ts:1490"
      ],
      "newSet": true,
      "added": [
        "person",
        "policy",
        "sla_timeout"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PermissionResult.guard",
      "at": [
        "src/core/tool-policy.ts:606"
      ],
      "newSet": false,
      "added": [
        "dangerous_delete"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "SHELL_REMOVAL_COMMANDS",
      "at": [
        "src/tools/fs/removal-targets.ts:24"
      ],
      "newSet": true,
      "added": [
        "rm",
        "rmdir"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "STORE_FORM_REFUSAL_CODES",
      "at": [
        "src/core/memory-engine/layout.ts:1135"
      ],
      "newSet": true,
      "added": [
        "memory.scope_home_not_directory",
        "memory.target_outside_store"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ShellRemovalCommand",
      "at": [
        "src/tools/fs/removal-targets.ts:25"
      ],
      "newSet": true,
      "added": [
        "rm",
        "rmdir"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "StoreFormRefusalCode",
      "at": [
        "src/core/memory-engine/layout.ts:1136",
        "src/index.ts:2422"
      ],
      "newSet": true,
      "added": [
        "memory.scope_home_not_directory",
        "memory.target_outside_store"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ToolNameListSide",
      "at": [
        "src/agents/tool-filter.ts:118"
      ],
      "newSet": true,
      "added": [
        "allowed",
        "denied"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "UserInputLane",
      "at": [
        "src/core/task-notification.ts:68"
      ],
      "newSet": true,
      "added": [
        "followUp",
        "steer"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "closedSetsUnreadable": [],
  "typeKeys": [
    {
      "type": "AllowEntryInert",
      "at": [
        "src/core/allow-entry.ts:68"
      ],
      "via": "SkillGrantHit.readsAsNothing",
      "added": [
        "valueType"
      ],
      "addedDetail": [
        {
          "key": "valueType",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "AllowEntryInertDetail",
      "at": [
        "src/core/allow-entry.ts:46"
      ],
      "via": "SkillGrantHit.readsAsNothing.AllowEntryInertDetail",
      "added": [
        "valueType"
      ],
      "addedDetail": [
        {
          "key": "valueType",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "AskClassFacts",
      "at": [
        "src/core/ask-origin.ts:736"
      ],
      "added": [
        "readFace"
      ],
      "addedDetail": [
        {
          "key": "readFace",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "Prepared",
      "at": [
        "src/core/runner/contracts.ts:246"
      ],
      "via": "Runner.SuspendReap.env",
      "added": [
        "handsRoot"
      ],
      "addedDetail": [
        {
          "key": "handsRoot",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RunnerSelfSeat",
      "at": [
        "src/core/runner/contracts.ts:2505"
      ],
      "added": [
        "canRerootChild"
      ],
      "addedDetail": [
        {
          "key": "canRerootChild",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "SessionRuleNameRefusal",
      "at": [
        "src/core/session-policy-store.ts:66"
      ],
      "added": [
        "guidance"
      ],
      "addedDetail": [
        {
          "key": "guidance",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "ToolCallRequest",
      "at": [
        "src/core/tool-policy.ts:51"
      ],
      "added": [
        "root"
      ],
      "addedDetail": [
        {
          "key": "root",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "ToolGateInput",
      "at": [
        "src/core/hooks.ts:1470"
      ],
      "via": "runToolGate.ToolGateInput",
      "added": [
        "readFace"
      ],
      "addedDetail": [
        {
          "key": "readFace",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "ToolSpec",
      "at": [
        "src/core/tool-spec.ts:131"
      ],
      "added": [
        "agentToolFaces[].authored",
        "agentToolLevelAllowTools",
        "agentToolLevelDenyTools"
      ],
      "addedDetail": [
        {
          "key": "agentToolFaces[].authored",
          "optional": true
        },
        {
          "key": "agentToolLevelAllowTools",
          "optional": true
        },
        {
          "key": "agentToolLevelDenyTools",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    }
  ],
  "typeKeysUnreadableArms": [],
  "typeKeysFlattenedCount": 225,
  "signatures": [
    {
      "name": "Prepared.approvedCallScreen",
      "at": [
        "src/core/runner/contracts.ts:425"
      ],
      "from": [
        "(call: { toolCallId: string; toolName: string; args: unknown; decidedBy: \"person\" | \"sla_timeout\" | \"policy\"; }): Promise<{ readonly refused: string; } | { readonly args: unknown; readonly admit: () => void; }>"
      ],
      "to": [
        "(call: { toolCallId: string; toolName: string; args: unknown; decidedBy: HostDecider; }): Promise<{ readonly refused: string; } | { readonly args: unknown; readonly admit: () => void; }>"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `call` type changed, direction not read: …gs: unknown; decidedBy: [\"person\" | \"sla_timeout\" | \"policy\" -> HostDecider]; }",
          "breaking": true,
          "uncertain": true
        }
      ],
      "uncertain": "param 1 `call` type changed, direction not read: …gs: unknown; decidedBy: [\"person\" | \"sla_timeout\" | \"policy\" -> HostDecider]; } — the direction of a type change is not read syntactically, so it is reported breaking: check whether existing call sites still type-check before writing the BREAKING line",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "name": "createUnverifiableDeletePolicy",
      "at": [
        "src/core/tool-policy.ts:2515"
      ],
      "from": [
        "(opts?: { safeVars?: readonly string[]; tools?: string[]; }): ToolPolicy"
      ],
      "to": [
        "(opts?: { safeVars?: readonly string[]; tools?: string[]; removalSeat?: RemovalGuardSeat; }): ToolPolicy"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "param 1 `opts` type widened: …ng[]; tools?: string[]; [ -> removalSeat?: RemovalGuardSeat; ]}",
          "breaking": false
        }
      ],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "name": "foldArbitrationRow",
      "at": [
        "src/core/ask-origin.ts:813"
      ],
      "from": [
        "(classes: ReadonlySet<AskClass>): ModeArbitrationRow"
      ],
      "to": [
        "(classes: ReadonlySet<AskClass>, readFace?: ContainmentFace): ModeArbitrationRow"
      ],
      "changes": [
        {
          "aspect": "param",
          "detail": "+optional param `readFace?: ContainmentFace`",
          "breaking": false
        }
      ],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "declarationMoves": [
    {
      "name": "HeldQuestion",
      "kind": "type",
      "onSurface": true,
      "from": [
        "src/core/real-approval.ts"
      ],
      "to": [
        "src/core/real-approval.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "SCOPE_HOME_FORMS",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/core/memory-engine/layout.ts"
      ],
      "to": [
        "src/core/memory-engine/layout.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "SCOPE_HOME_NOT_DIRECTORY",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/core/memory-engine/layout.ts"
      ],
      "to": [
        "src/core/memory-engine/layout.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "ScopeHomeForm",
      "kind": "type",
      "onSurface": true,
      "from": [
        "src/core/memory-engine/layout.ts"
      ],
      "to": [
        "src/core/memory-engine/layout.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "StoreFormRefusal",
      "kind": "type",
      "onSurface": true,
      "from": [
        "src/core/memory-engine/layout.ts"
      ],
      "to": [
        "src/core/memory-engine/layout.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "StoreFormRefusalDetail",
      "kind": "type",
      "onSurface": true,
      "from": [
        "src/core/memory-engine/layout.ts"
      ],
      "to": [
        "src/core/memory-engine/layout.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "TARGET_OUTSIDE_STORE",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/core/memory-engine/layout.ts"
      ],
      "to": [
        "src/core/memory-engine/layout.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "policyCannotAnswer",
      "kind": "function",
      "onSurface": true,
      "from": [
        "src/core/real-approval.ts",
        "src/core/tool-policy.ts"
      ],
      "to": [
        "src/core/real-approval.ts",
        "src/core/tool-policy.ts",
        "src/index.ts"
      ]
    }
  ],
  "mintMoves": [],
  "criteriaObserves": [
    {
      "kind": "engineNoticeCode",
      "name": "permission.allowed_tool_not_granted",
      "assertions": [
        "G16.a",
        "G16.b",
        "G17.a",
        "G17.b",
        "G19.a",
        "G19.c"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "task.user_followup_undrained",
      "assertions": [
        "G21.a",
        "G21.b"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "task.user_steer_undrained",
      "assertions": [
        "G21.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.isError",
      "assertions": [
        "G14.a",
        "G15.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.output",
      "assertions": [
        "G14.a",
        "G14.b",
        "G15.a",
        "G19.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AgentDefinition.allowTools",
      "assertions": [
        "G18.a",
        "G18.b",
        "G18.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AgentDefinition.denyTools",
      "assertions": [
        "G5.a",
        "G5.b",
        "G6.a",
        "G7.a",
        "G7.b",
        "G10.a",
        "G10.b",
        "G12.a",
        "G12.b",
        "G16.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.askClass",
      "assertions": [
        "G1.a",
        "G2.b",
        "G20.a",
        "G24.a",
        "G24.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.classes",
      "assertions": [
        "G20.a",
        "G24.a",
        "G24.b",
        "G24.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.mandate",
      "assertions": [
        "G20.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.mandated",
      "assertions": [
        "G20.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.message",
      "assertions": [
        "G1.a",
        "G24.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.requiresRealApproval",
      "assertions": [
        "G20.b",
        "G20.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "GateOutcome.disposition",
      "assertions": [
        "G1.b",
        "G1.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "GateOutcome.disposition.released.reason",
      "assertions": [
        "G2.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ModeArbitrationRow.classifierEligible",
      "assertions": [
        "G20.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PendingSteerInput.priority",
      "assertions": [
        "G21.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionResult.matchedAskRule",
      "assertions": [
        "G3.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionResult.requiresRealApproval",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionResult.ruleUnreadable",
      "assertions": [
        "G2.a",
        "G3.b",
        "G3.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ResumeOutcome.hostDecision",
      "assertions": [
        "G13.a",
        "G13.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SessionRuleNameRefusal.guidance",
      "assertions": [
        "G23.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SessionRuleNameRefusal.verdict",
      "assertions": [
        "G23.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillSpec.allowedTools",
      "assertions": [
        "G19.c",
        "G19.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SkillSpec.disallowedTools",
      "assertions": [
        "G19.a",
        "G19.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "StoreFormRefusalDetail.form",
      "assertions": [
        "G22.a",
        "G22.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "StoreFormRefusalDetail.path",
      "assertions": [
        "G22.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.terminal",
      "assertions": [
        "G19.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.agents",
      "assertions": [
        "G5.a",
        "G6.a",
        "G6.b",
        "G16.c",
        "G18.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.allowedTools",
      "assertions": [
        "G16.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.permissionMode",
      "assertions": [
        "G20.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.readFace",
      "assertions": [
        "G20.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.userInvokedSkills",
      "assertions": [
        "G19.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolCallRequest.cwd",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolCallRequest.root",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.agentToolFaces",
      "assertions": [
        "G9.a",
        "G9.c",
        "G11.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.agentToolLevelAllowTools",
      "assertions": [
        "G18.a",
        "G18.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.agentToolLevelDenyTools",
      "assertions": [
        "G9.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolSpec.agentToolPool",
      "assertions": [
        "G8.a",
        "G8.b",
        "G11.a"
      ]
    }
  ],
  "consumersHint": {
    "cli": [
      "ASK_CLASSES",
      "PermissionResult",
      "Prepared",
      "RunnerSelfSeat",
      "ToolCallRequest",
      "ToolGateInput",
      "ToolSpec"
    ],
    "server": [
      "ASK_CLASSES",
      "HOST_DECIDERS",
      "PermissionResult",
      "Prepared",
      "SCOPE_HOME_NOT_DIRECTORY",
      "STORE_FORM_REFUSAL_CODES",
      "SessionRuleNameRefusal",
      "StoreFormRefusal",
      "StoreFormRefusalCode",
      "TARGET_OUTSIDE_STORE",
      "ToolCallRequest",
      "ToolGateInput",
      "ToolSpec",
      "createUnverifiableDeletePolicy",
      "foldArbitrationRow",
      "policyCannotAnswer"
    ],
    "sdk": [
      "ASK_CLASSES",
      "PermissionResult",
      "SCOPE_HOME_NOT_DIRECTORY"
    ],
    "note": "scanned cli@fb2a095a server@bed34b7d sdk@605ccb1 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it. Ledger files (**/docs/core-consumption/**, **/docs/wire-consumption/**, **/*LEDGER*.json) are not evidence of use — server: 2 name(s) matched ONLY in bookkeeping files and were set aside (AskClassFacts, RunnerSelfSeat)"
  },
  "breakingCount": 1,
  "breakingItems": [
    "signature changed: Prepared.approvedCallScreen — param 1 `call` type changed, direction not read: …gs: unknown; decidedBy: [\"person\" | \"sla_timeout\" | \"policy\" -> HostDecider]; }"
  ]
}
