{
  "repo": "core",
  "version": "7.5.0",
  "from": "10df96eab1a17048c2310a14ba265aa806605bd7",
  "to": "104a2618eb38bf0c2ec576dc79ce44530100b55e",
  "added": [
    {
      "name": "ASK_ORIGINS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/ask-origin.ts:55",
        "src/index.ts:1131"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "AskCarry",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/hooks.ts:2479",
        "src/index.ts:1135"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "AskOrigin",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/ask-origin.ts:56",
        "src/index.ts:1131"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "DenialLimitCounts",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/auto-mode.ts:258",
        "src/index.ts:1156"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "DenialLimitFallbackFace",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/auto-mode.ts:312",
        "src/index.ts:1157"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "DurableRulePartition",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:72",
        "src/index.ts:1314"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "DurableRulePartitionProvider",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:105",
        "src/index.ts:1315"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "EMPTY_DURABLE_RULE_PARTITION",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1050",
        "src/index.ts:1313"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "EffectivePermissionRules",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-provider.ts:85",
        "src/index.ts:1378"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "FileDurableRulePartitionProvider",
      "kind": "class",
      "tier": "advanced",
      "at": [
        "src/index.ts:1450",
        "src/stores/file/permission-rule-store.ts:555"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "InMemoryDurableRulePartition",
      "kind": "class",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1059",
        "src/index.ts:1312"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "InMemorySessionRulePartition",
      "kind": "class",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:108",
        "src/index.ts:1388"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "MCP_FAILURE_CODES",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/mcp.ts:989",
        "src/index.ts:277"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "McpFailureCode",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/mcp.ts:990",
        "src/index.ts:277"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ORG_STATE_FILE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/index.ts:1450",
        "src/stores/file/permission-rule-store.ts:149"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "OrgRulePartitionConfig",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-org.ts:202",
        "src/index.ts:1407"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "OrgRuleResolution",
      "kind": "interface",
      "tier": "stable",
      "at": [
        "src/core/permission-rule-org.ts:185",
        "src/index.ts:1408"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "OrgRuleStatus",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-org.ts:181",
        "src/index.ts:1409"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PermissionRuleStoreConfig",
      "kind": "interface",
      "tier": "stable",
      "at": [
        "src/core/permission-rule-provider.ts:139",
        "src/index.ts:1377"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RemovedPermissionRule",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-provider.ts:77",
        "src/index.ts:1380"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RuleSource",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-provider.ts:60",
        "src/index.ts:1381"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RuleWriteOutcome",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:131",
        "src/index.ts:1316"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SessionRuleAdd",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:51",
        "src/index.ts:1390"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SessionRuleApplyResult",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:61",
        "src/index.ts:1391"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "SessionRulePartition",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:84",
        "src/index.ts:1389"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "UnarmedDenialLimitFallback",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/auto-mode.ts:279",
        "src/index.ts:1158"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "WiringManifestMcpEntry",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/wiring-manifest.ts:116",
        "src/index.ts:849"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "WritableDurableRulePartition",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:241",
        "src/index.ts:1348"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "classifierMayAnswer",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/ask-origin.ts:146",
        "src/index.ts:1131"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "createPermissionRuleStoreProvider",
      "kind": "function",
      "tier": "stable",
      "at": [
        "src/core/permission-rule-provider.ts:164",
        "src/index.ts:1371"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "effectiveOrThrow",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-provider.ts:321",
        "src/index.ts:1373"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "isAskOrigin",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/ask-origin.ts:61",
        "src/index.ts:1131"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "mcpFailureCodeOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/mcp.ts:1004",
        "src/index.ts:277"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "orgRuleShadows",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-org.ts:680",
        "src/index.ts:1397"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ruleSourceOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-provider.ts:63",
        "src/index.ts:1374"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "unarmedWindow",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/auto-mode.ts:317",
        "src/index.ts:1153"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "unenforceableOrgRules",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-org.ts:520",
        "src/index.ts:1398"
      ],
      "criteriaCovered": false,
      "breaking": false
    }
  ],
  "removed": [
    {
      "name": "EMPTY_RULE_STORE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1016",
        "src/index.ts:1291"
      ],
      "breaking": true
    },
    {
      "name": "FilePermissionRuleStoreProvider",
      "kind": "class",
      "tier": "advanced",
      "at": [
        "src/index.ts:1413",
        "src/stores/file/permission-rule-store.ts:536"
      ],
      "breaking": true
    },
    {
      "name": "InMemoryPermissionRuleStore",
      "kind": "class",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1025",
        "src/index.ts:1290"
      ],
      "breaking": true
    },
    {
      "name": "InMemorySessionRuleOverlay",
      "kind": "class",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:104",
        "src/index.ts:1349"
      ],
      "breaking": true
    },
    {
      "name": "OrgOverlayResolution",
      "kind": "interface",
      "tier": "stable",
      "at": [
        "src/core/permission-rule-org.ts:187",
        "src/index.ts:1370"
      ],
      "breaking": true
    },
    {
      "name": "OrgOverlayStatus",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-org.ts:183",
        "src/index.ts:1371"
      ],
      "breaking": true
    },
    {
      "name": "OrgRuleOverlay",
      "kind": "interface",
      "tier": "stable",
      "at": [
        "src/core/permission-rule-org.ts:195",
        "src/index.ts:1369"
      ],
      "breaking": true
    },
    {
      "name": "SessionRuleOverlay",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:80",
        "src/index.ts:1350"
      ],
      "breaking": true
    },
    {
      "name": "SessionRuleOverlayAdd",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:49",
        "src/index.ts:1351"
      ],
      "breaking": true
    },
    {
      "name": "SessionRuleOverlayApplyResult",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-session.ts:59",
        "src/index.ts:1352"
      ],
      "breaking": true
    },
    {
      "name": "WritablePermissionRuleStore",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:219",
        "src/index.ts:1325"
      ],
      "breaking": true
    },
    {
      "name": "createOrgRuleOverlay",
      "kind": "function",
      "tier": "stable",
      "at": [
        "src/core/permission-rule-org.ts:208",
        "src/index.ts:1357"
      ],
      "breaking": true
    },
    {
      "name": "orgRuleStatePersistenceOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-org.ts:88",
        "src/index.ts:1360"
      ],
      "breaking": true
    }
  ],
  "changed": [
    {
      "name": "PermissionRuleStoreProvider",
      "from": {
        "kind": "interface",
        "tier": "advanced"
      },
      "to": {
        "kind": "interface",
        "tier": "stable"
      },
      "at": [
        "src/core/permission-rule-provider.ts:129",
        "src/index.ts:1376"
      ],
      "breaking": false
    }
  ],
  "narrowed": [],
  "closedSetMembers": [
    {
      "set": "ASK_ORIGINS",
      "at": [
        "src/core/ask-origin.ts:55"
      ],
      "newSet": true,
      "added": [
        "ask_rule",
        "content_question",
        "denial_limit_fallback",
        "hook",
        "org_rule",
        "org_unavailable",
        "policy",
        "unresolvable"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MCP_FAILURE_CODES",
      "at": [
        "src/core/mcp.ts:989"
      ],
      "newSet": true,
      "added": [
        "connect_refused",
        "connection_closed",
        "connection_failed",
        "invalid_config",
        "network",
        "not_mcp_response",
        "protocol",
        "spawn_failed",
        "timeout",
        "unknown"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "OrgRuleStatus",
      "at": [
        "src/core/permission-rule-org.ts:181"
      ],
      "newSet": true,
      "added": [
        "fresh",
        "last-known-good",
        "unavailable",
        "ungoverned"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RuleSource",
      "at": [
        "src/core/permission-rule-provider.ts:60"
      ],
      "newSet": true,
      "added": [
        "org",
        "project",
        "session",
        "user"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "typeKeys": [
    {
      "type": "AskRequest",
      "at": [
        "src/core/tool-policy.ts:2493"
      ],
      "added": [
        "origin"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "AutoModeArmingFace",
      "at": [
        "src/core/auto-mode-arming.ts:138"
      ],
      "added": [
        "denialLimit"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "AutoModeArmingRecipe",
      "at": [
        "src/core/auto-mode-arming.ts:76"
      ],
      "added": [
        "denialLimit"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "AutoModeDenialTracker",
      "at": [
        "src/core/auto-mode.ts:332"
      ],
      "added": [
        "armTimedWindow"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "CheckpointSummary",
      "at": [
        "src/core/checkpoint-store.ts:2036"
      ],
      "added": [
        "denialLimitFallback",
        "origin",
        "requiresRealApproval"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "DenialLimitFallback",
      "at": [
        "src/core/auto-mode.ts:299"
      ],
      "added": [],
      "removed": [
        "consecutive",
        "limit",
        "total"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "EffectivePermissionRule",
      "at": [
        "src/core/permission-rule-provider.ts:69"
      ],
      "added": [
        "source"
      ],
      "removed": [
        "rule",
        "scope"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "McpServerSpec",
      "at": [
        "src/core/types.ts:1490"
      ],
      "added": [
        "source"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "McpServerStatus",
      "at": [
        "src/core/mcp.ts:323"
      ],
      "added": [
        "errorCode"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "PendingAction",
      "at": [
        "src/core/checkpoint-store.ts:967"
      ],
      "added": [
        "tool_approval.denialLimitFallback",
        "tool_approval.origin",
        "tool_approval.requiresRealApproval"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "PermissionResult",
      "at": [
        "src/core/tool-policy.ts:267"
      ],
      "added": [
        "origin"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "PermissionRuleStore",
      "at": [
        "src/core/permission-rule-provider.ts:115"
      ],
      "added": [
        "effective"
      ],
      "removed": [
        "list"
      ],
      "breaking": true,
      "criteriaCovered": true
    },
    {
      "type": "PermissionRuleStoreProvider",
      "at": [
        "src/core/permission-rule-provider.ts:129"
      ],
      "added": [
        "partitions"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "RuleConsentDeps",
      "at": [
        "src/core/permission-rule-consent.ts:230"
      ],
      "added": [],
      "removed": [
        "sessionRules"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "RunnerDeps",
      "at": [
        "src/core/types.ts:6535"
      ],
      "added": [],
      "removed": [
        "permissionRuleOrg",
        "sessionPermissionRules"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "TaskEvent",
      "at": [
        "src/core/types.ts:4292"
      ],
      "added": [
        "tool_end.autoDenied"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "WiringFacts",
      "at": [
        "src/core/wiring-manifest.ts:276"
      ],
      "added": [
        "mcp"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "WiringManifest",
      "at": [
        "src/core/wiring-manifest.ts:130"
      ],
      "added": [
        "mcp"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    }
  ],
  "criteriaObserves": [
    {
      "kind": "engineNoticeCode",
      "name": "peer.idle_subscription",
      "assertions": [
        "G9.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.isError",
      "assertions": [
        "G7.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.denialLimitFallback",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.origin",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "CheckpointSummary.origin",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "DenialLimitFallback.autoDenyAfterMs",
      "assertions": [
        "G5.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "DurableRulePartition.list",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "EffectivePermissionRule.status",
      "assertions": [
        "G1.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "FileDurableRulePartitionProvider.forPrincipal",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "McpServerStatus.errorCode",
      "assertions": [
        "G6.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "OrgRuleResolution.status",
      "assertions": [
        "G3.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionResult.denialLimitFallback",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionRuleStore.effective",
      "assertions": [
        "G1.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionRuleStoreProvider.partitions",
      "assertions": [
        "G1.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "UnarmedDenialLimitFallback.consecutive",
      "assertions": [
        "G5.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "WiringManifest.mcp",
      "assertions": [
        "G6.a",
        "G10.a"
      ]
    }
  ],
  "consumersHint": {
    "cli": [
      "AskRequest",
      "InMemoryPermissionRuleStore",
      "McpServerSpec",
      "McpServerStatus",
      "PermissionResult",
      "RunnerDeps",
      "TaskEvent"
    ],
    "server": [
      "AskRequest",
      "AutoModeArmingFace",
      "AutoModeArmingRecipe",
      "AutoModeDenialTracker",
      "CheckpointSummary",
      "DenialLimitFallback",
      "EMPTY_RULE_STORE",
      "EffectivePermissionRule",
      "FilePermissionRuleStoreProvider",
      "InMemoryPermissionRuleStore",
      "InMemorySessionRuleOverlay",
      "McpServerSpec",
      "McpServerStatus",
      "OrgOverlayResolution",
      "OrgOverlayStatus",
      "OrgRuleOverlay",
      "PendingAction",
      "PermissionResult",
      "PermissionRuleStore",
      "PermissionRuleStoreProvider",
      "RuleConsentDeps",
      "RunnerDeps",
      "SessionRuleOverlay",
      "SessionRuleOverlayAdd",
      "SessionRuleOverlayApplyResult",
      "TaskEvent",
      "WiringFacts",
      "WiringManifest",
      "WritablePermissionRuleStore",
      "createOrgRuleOverlay",
      "orgRuleStatePersistenceOf"
    ],
    "sdk": [
      "AskRequest",
      "CheckpointSummary",
      "McpServerSpec",
      "McpServerStatus",
      "PendingAction",
      "RunnerDeps",
      "TaskEvent",
      "WiringManifest"
    ],
    "note": "scanned cli@515fe2be server@ba7bf525 sdk@be9e477 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
  },
  "breakingCount": 18,
  "breakingItems": [
    "export removed: EMPTY_RULE_STORE (variable)",
    "export removed: FilePermissionRuleStoreProvider (class)",
    "export removed: InMemoryPermissionRuleStore (class)",
    "export removed: InMemorySessionRuleOverlay (class)",
    "export removed: OrgOverlayResolution (interface)",
    "export removed: OrgOverlayStatus (type)",
    "export removed: OrgRuleOverlay (interface)",
    "export removed: SessionRuleOverlay (interface)",
    "export removed: SessionRuleOverlayAdd (interface)",
    "export removed: SessionRuleOverlayApplyResult (type)",
    "export removed: WritablePermissionRuleStore (interface)",
    "export removed: createOrgRuleOverlay (function)",
    "export removed: orgRuleStatePersistenceOf (function)",
    "type lost keys: DenialLimitFallback -consecutive,limit,total",
    "type lost keys: EffectivePermissionRule -rule,scope",
    "type lost keys: PermissionRuleStore -list",
    "type lost keys: RuleConsentDeps -sessionRules",
    "type lost keys: RunnerDeps -permissionRuleOrg,sessionPermissionRules"
  ]
}
