{
  "repo": "core",
  "version": "7.9.0",
  "from": "d1f86a6d5796ff2b16f803661613e7711fe81511",
  "to": "v7.9.0",
  "added": [
    {
      "name": "COMMAND_RULE_TOOL",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:146",
        "src/index.ts:1379"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ParsedRule",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:309",
        "src/index.ts:1433"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PathRuleBases",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:1202",
        "src/index.ts:1381"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PersistedRule",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:250",
        "src/index.ts:1420"
      ],
      "criteriaCovered": true,
      "breaking": false
    },
    {
      "name": "PersistedRuleVerdict",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:2065",
        "src/index.ts:1383"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "READ_RULE_TOOL",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:148",
        "src/index.ts:1380"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RULE_BEHAVIORS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:91",
        "src/index.ts:1366"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RULE_BEHAVIORS_BY_PRECEDENCE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:115",
        "src/index.ts:1368"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RULE_BEHAVIOR_PRECEDENCE",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:107",
        "src/index.ts:1367"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RuleBehavior",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:92",
        "src/index.ts:1382"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "StoredRules",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:53",
        "src/index.ts:1457"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "adjudicatePersistedPathRules",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:2114",
        "src/index.ts:1372"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "adjudicatePersistedRules",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:2083",
        "src/index.ts:1371"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "formatRuleText",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:1121",
        "src/index.ts:1385"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "isRuleBehavior",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:96",
        "src/index.ts:1369"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "parseRuleText",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:1010",
        "src/index.ts:1384"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "pathRuleReaches",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:1281",
        "src/index.ts:1377"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "readRowBehavior",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:126",
        "src/index.ts:1370"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ruleReachesProgramRun",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:1383",
        "src/index.ts:1373"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "ruleToolGrammarOf",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:157",
        "src/index.ts:1378"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "sameRuleIdentity",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:270",
        "src/index.ts:1441"
      ],
      "criteriaCovered": false,
      "breaking": false
    }
  ],
  "removed": [
    {
      "name": "ParsedAllowRule",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:208",
        "src/index.ts:1412"
      ],
      "breaking": true
    },
    {
      "name": "PersistedAllowRule",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:157",
        "src/index.ts:1399"
      ],
      "breaking": true
    },
    {
      "name": "StoredAllowRules",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:53",
        "src/index.ts:1435"
      ],
      "breaking": true
    },
    {
      "name": "formatAllowRuleText",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:1039",
        "src/index.ts:1364"
      ],
      "breaking": true
    },
    {
      "name": "parseAllowRuleText",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-model.ts:907",
        "src/index.ts:1363"
      ],
      "breaking": true
    }
  ],
  "changed": [],
  "narrowed": [],
  "closedSetMembers": [
    {
      "set": "ASK_ORIGINS",
      "at": [
        "src/core/ask-origin.ts:69"
      ],
      "newSet": false,
      "added": [
        "rule_store_unavailable"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "CheckpointErrorReason",
      "at": [
        "src/core/checkpoint-store.ts:2361"
      ],
      "newSet": true,
      "added": [
        "constraint_chain_missing",
        "env_factory_missing",
        "governed_unwired",
        "ledger_event_unknown",
        "origin_missing",
        "read_face_damaged",
        "read_face_forged",
        "real_approval_damaged",
        "real_approval_forged",
        "version_newer"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "DENIED_BY_VALUES",
      "at": [
        "src/core/gate-outcome.ts:133"
      ],
      "newSet": false,
      "added": [
        "persisted_rule"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PersistedRuleMatch",
      "at": [
        "src/core/permission-rule-model.ts:185"
      ],
      "newSet": false,
      "added": [
        "path"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "PersistedRuleTool",
      "at": [
        "src/core/permission-rule-model.ts:80"
      ],
      "newSet": false,
      "added": [],
      "removed": [
        "Bash",
        "Read"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "set": "RULE_BEHAVIORS",
      "at": [
        "src/core/permission-rule-model.ts:91"
      ],
      "newSet": true,
      "added": [
        "allow",
        "ask",
        "deny"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "typeKeys": [
    {
      "type": "EffectivePermissionRule",
      "at": [
        "src/core/permission-rule-provider.ts:71"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "PermissionRulePolicyOptions",
      "at": [
        "src/core/permission-rules.ts:142"
      ],
      "added": [
        "pathBases"
      ],
      "removed": [
        "bashPrefixLane"
      ],
      "breaking": true,
      "criteriaCovered": false
    },
    {
      "type": "PersistedRuleHit",
      "at": [
        "src/core/hooks.ts:1374"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "QuarantinedRuleAdd",
      "at": [
        "src/core/permission-rule-store.ts:409"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RedeemResult",
      "at": [
        "src/core/permission-rule-consent.ts:1358"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RedeemedBatchMember",
      "at": [
        "src/core/permission-rule-consent.ts:1628"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RemovedPermissionRule",
      "at": [
        "src/core/permission-rule-provider.ts:79"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RuleAddDelta",
      "at": [
        "src/core/permission-rule-store.ts:144"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RuleCandidate",
      "at": [
        "src/core/permission-rule-consent.ts:64"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RuleSyncDrop",
      "at": [
        "src/core/permission-rule-store.ts:420"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RuleTombstone",
      "at": [
        "src/core/permission-rule-model.ts:275"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "SessionRuleAdd",
      "at": [
        "src/core/permission-rule-session.ts:52"
      ],
      "added": [
        "behavior"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "declarationMoves": [
    {
      "name": "ParsedPermissionRule",
      "kind": "interface",
      "onSurface": true,
      "from": [
        "src/core/permission-rules.ts",
        "src/index.ts"
      ],
      "to": [
        "src/core/permission-rule-syntax.ts",
        "src/core/permission-rules.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "parsePermissionRule",
      "kind": "function",
      "onSurface": true,
      "from": [
        "src/core/permission-rules.ts",
        "src/index.ts"
      ],
      "to": [
        "src/core/permission-rule-syntax.ts",
        "src/core/permission-rules.ts",
        "src/index.ts"
      ]
    }
  ],
  "mintMoves": [],
  "criteriaObserves": [
    {
      "kind": "engineNoticeCode",
      "name": "config.tool_card_undeclared",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "engineNoticeCode",
      "name": "config.tool_face_invalid",
      "assertions": [
        "G3.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_end.structured",
      "assertions": [
        "G2.a",
        "G3.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "tool_roster_delta.delta",
      "assertions": [
        "G1.a"
      ]
    },
    {
      "kind": "taskEventField",
      "name": "wiring_manifest.manifest",
      "assertions": [
        "G1.a",
        "G2.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.origin",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "GateDisposition.deniedBy",
      "assertions": [
        "G4.a",
        "G4.e"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PermissionRuleIssue.code",
      "assertions": [
        "G4.d"
      ]
    },
    {
      "kind": "typeMember",
      "name": "PersistedRule.behavior",
      "assertions": [
        "G4.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ToolCallRequest.face",
      "assertions": [
        "G4.b"
      ]
    }
  ],
  "consumersHint": {
    "cli": [
      "ASK_ORIGINS",
      "DENIED_BY_VALUES",
      "PersistedRule",
      "parseAllowRuleText"
    ],
    "server": [
      "ASK_ORIGINS",
      "DENIED_BY_VALUES",
      "EffectivePermissionRule",
      "ParsedAllowRule",
      "PermissionRulePolicyOptions",
      "PersistedAllowRule",
      "PersistedRuleHit",
      "PersistedRuleMatch",
      "PersistedRuleTool",
      "QuarantinedRuleAdd",
      "RedeemResult",
      "RedeemedBatchMember",
      "RemovedPermissionRule",
      "RuleAddDelta",
      "RuleCandidate",
      "RuleSyncDrop",
      "RuleTombstone",
      "SessionRuleAdd",
      "StoredAllowRules",
      "formatAllowRuleText",
      "parseAllowRuleText"
    ],
    "sdk": [
      "ASK_ORIGINS",
      "DENIED_BY_VALUES",
      "PersistedAllowRule",
      "PersistedRule",
      "PersistedRuleMatch",
      "RedeemedBatchMember",
      "RuleCandidate"
    ],
    "note": "scanned cli@0c3bce13 server@db889cb7 sdk@da3859c — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
  },
  "breakingCount": 7,
  "breakingItems": [
    "closed set lost members: PersistedRuleTool -Bash,Read",
    "export removed: ParsedAllowRule (interface)",
    "export removed: PersistedAllowRule (interface)",
    "export removed: StoredAllowRules (interface)",
    "export removed: formatAllowRuleText (function)",
    "export removed: parseAllowRuleText (function)",
    "type lost keys: PermissionRulePolicyOptions -bashPrefixLane"
  ],
  "toResolvedAt": "96581fd0929626c538a19d17e20b2632ceb76a3d"
}
