{
  "repo": "core",
  "version": "7.35.0",
  "from": "077c3b0af94b5fd58e64104974cae266ec4d5782",
  "to": "v7.35.0",
  "added": [
    {
      "name": "PROVIDER_ECHO_SHAPE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/brain/errors.ts:118",
        "src/index.ts:250"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "TOOL_DECLARATION_CODES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/governance-codes.ts:244",
        "src/index.ts:440"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ToolDeclarationCode",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/governance-codes.ts:257",
        "src/index.ts:440"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "isProviderEchoShape",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/brain/errors.ts:121",
        "src/index.ts:250"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "rosterToolName",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/tool-roster.ts:191",
        "src/index.ts:1080"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ruleNamesOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/tool-registry.ts:111",
        "src/core/tool-roster.ts:202",
        "src/index.ts:1081"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "wrapToolPolicy",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/tool-policy.ts:750",
        "src/index.ts:1393"
      ],
      "criteriaCovered": false,
      "breaking": false
    }
  ],
  "removed": [],
  "changed": [],
  "narrowed": [
    {
      "id": "F3",
      "source": "behaviorFlips.summary",
      "text": "narrowing: every non-exempt variable's value is read, and a credential-carrying value withholds the variable"
    },
    {
      "id": "F5",
      "source": "behaviorFlips.summary",
      "text": "narrowing: every `OTEL_*` variable is withheld by prefix"
    }
  ],
  "closedSetMembers": [
    {
      "set": "ExactEnvNameVerdict",
      "at": [
        "src/core/secret-env.ts:864"
      ],
      "newSet": false,
      "added": [],
      "removed": [
        "credential",
        "exempt",
        "unknown"
      ],
      "persistedBy": "none",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "set": "SecretEnvFindingKind",
      "at": [
        "src/core/secret-env.ts:207"
      ],
      "newSet": false,
      "added": [
        "name-rule",
        "prefix-rule",
        "value-rule"
      ],
      "removed": [
        "family-rule",
        "suffix-rule"
      ],
      "persistedBy": "none",
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "set": "TOOL_DECLARATION_CODES",
      "at": [
        "src/core/governance-codes.ts:244"
      ],
      "newSet": true,
      "added": [
        "config.egress_requires_write_effect",
        "config.reserved_tool_name",
        "config.tool_contract_too_long",
        "config.tool_face_invalid",
        "config.tool_mount_denied",
        "config.tool_name_invalid",
        "config.tool_name_too_long",
        "config.tool_roster_bound",
        "config.tool_schema_bound"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ToolDeclarationCode",
      "at": [
        "src/core/governance-codes.ts:257",
        "src/index.ts:440"
      ],
      "newSet": true,
      "added": [
        "config.egress_requires_write_effect",
        "config.reserved_tool_name",
        "config.tool_contract_too_long",
        "config.tool_face_invalid",
        "config.tool_mount_denied",
        "config.tool_name_invalid",
        "config.tool_name_too_long",
        "config.tool_roster_bound",
        "config.tool_schema_bound"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "closedSetsUnreadable": [],
  "typeKeys": [
    {
      "type": "ModeArbitrationRow",
      "at": [
        "src/core/ask-origin.ts:599"
      ],
      "added": [
        "hookAskFloor"
      ],
      "addedDetail": [
        {
          "key": "hookAskFloor",
          "optional": false
        }
      ],
      "addedRequired": [
        "hookAskFloor"
      ],
      "removed": [],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "PendingAction",
      "at": [
        "src/core/checkpoint-store.ts:961"
      ],
      "added": [
        "tool_approval.names"
      ],
      "addedDetail": [
        {
          "key": "tool_approval.names",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "Prepared",
      "at": [
        "src/core/runner/contracts.ts:244"
      ],
      "via": "Runner.SuspendReap.env",
      "added": [
        "endModeCeiling"
      ],
      "addedDetail": [
        {
          "key": "endModeCeiling",
          "optional": false
        }
      ],
      "addedRequired": [
        "endModeCeiling"
      ],
      "removed": [],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "RunInternals",
      "at": [
        "src/core/runner/contracts.ts:1406"
      ],
      "added": [
        "sessionModeSeats"
      ],
      "addedDetail": [
        {
          "key": "sessionModeSeats",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "ToolCallFace",
      "at": [
        "src/core/tool-policy.ts:25"
      ],
      "added": [
        "names"
      ],
      "addedDetail": [
        {
          "key": "names",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "ToolPolicy",
      "at": [
        "src/core/tool-policy.ts:688"
      ],
      "added": [
        "nameSets"
      ],
      "addedDetail": [
        {
          "key": "nameSets",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "TraceEvent",
      "at": [
        "src/core/trace.ts:60"
      ],
      "added": [
        "brain.echo_dropped.field",
        "brain.echo_dropped.kind",
        "brain.echo_dropped.taskId",
        "brain.echo_dropped.ts",
        "brain.echo_dropped.version"
      ],
      "addedDetail": [
        {
          "key": "brain.echo_dropped.field",
          "optional": false
        },
        {
          "key": "brain.echo_dropped.kind",
          "optional": false
        },
        {
          "key": "brain.echo_dropped.taskId",
          "optional": false
        },
        {
          "key": "brain.echo_dropped.ts",
          "optional": false
        },
        {
          "key": "brain.echo_dropped.version",
          "optional": false
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "typeKeysUnreadableArms": [],
  "typeKeysFlattenedCount": 219,
  "declarationMoves": [],
  "mintMoves": [
    {
      "code": "config.tool_name_too_long",
      "from": [
        "src/core/runner/prepare-protocol-tools.ts",
        "src/core/tool-roster.ts"
      ],
      "to": [
        "src/core/runner/prepare-protocol-tools.ts"
      ]
    }
  ],
  "criteriaObserves": [
    {
      "kind": "engineNoticeCode",
      "name": "config.permission_mode_unavailable",
      "assertions": [
        "G11.b"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "config.secret_env_scrubbed",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.gate",
      "assertions": [
        "G7.e",
        "G7.f",
        "G7.i",
        "G8.b",
        "G9.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "turn_end.responseModel",
      "assertions": [
        "G14.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.toolName",
      "assertions": [
        "G7.b",
        "G12.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "FileStorageCorruptReadInfo.sessionId",
      "assertions": [
        "G15.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ModeArbitrationRow.hookAskFloor",
      "assertions": [
        "G9.a",
        "G9.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "OracleGateSpec.inheritEnv",
      "assertions": [
        "G3.a",
        "G5.a",
        "G16.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SecretEnvFinding.confidence",
      "assertions": [
        "G1.a",
        "G1.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SecretEnvFinding.key",
      "assertions": [
        "G3.b",
        "G6.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SecretEnvFinding.kind",
      "assertions": [
        "G1.a",
        "G1.b",
        "G1.c",
        "G1.d",
        "G2.a",
        "G2.b",
        "G2.c",
        "G6.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.apiFailure",
      "assertions": [
        "G14.a",
        "G14.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.responseModel",
      "assertions": [
        "G14.a",
        "G14.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.terminal",
      "assertions": [
        "G7.g"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskResult.terminal.code",
      "assertions": [
        "G10.a",
        "G13.a",
        "G13.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.backgroundScope",
      "assertions": [
        "G11.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.permissionMode",
      "assertions": [
        "G11.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolCallFace.names",
      "assertions": [
        "G7.a",
        "G7.c",
        "G7.d",
        "G7.e",
        "G7.f",
        "G7.g",
        "G7.h",
        "G7.i"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolCallRequest.toolName",
      "assertions": [
        "G7.a",
        "G7.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolPolicy.nameSets",
      "assertions": [
        "G8.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolPolicy.pathDenyRules",
      "assertions": [
        "G8.a",
        "G8.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolPolicy.projection",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolPolicy.writeTargetGuard",
      "assertions": [
        "G8.a"
      ]
    }
  ],
  "consumersHint": {
    "cli": [
      "PendingAction",
      "Prepared",
      "RunInternals",
      "SecretEnvFindingKind",
      "ToolPolicy",
      "TraceEvent",
      "ruleNamesOf"
    ],
    "server": [
      "PROVIDER_ECHO_SHAPE",
      "PendingAction",
      "Prepared",
      "RunInternals",
      "SecretEnvFindingKind",
      "ToolPolicy",
      "TraceEvent",
      "isProviderEchoShape"
    ],
    "sdk": [
      "PendingAction",
      "ToolPolicy",
      "TraceEvent"
    ],
    "note": "scanned cli@6b6025f7 server@25d6b7a6 sdk@e8f6f0d — 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: 1 name(s) matched ONLY in bookkeeping files and were set aside (ToolCallFace)"
  },
  "breakingCount": 4,
  "breakingItems": [
    "closed set lost members: ExactEnvNameVerdict -credential,exempt,unknown",
    "closed set lost members: SecretEnvFindingKind -family-rule,suffix-rule",
    "type gained required keys: ModeArbitrationRow +hookAskFloor",
    "type gained required keys: Prepared +endModeCeiling"
  ],
  "toResolvedAt": "51449eb96681f4c7416454d10d1a0ef443163116"
}
