{
  "repo": "core",
  "version": "7.26.0",
  "from": "f8936c81b87604636d2e202cd3e3d8ed7738610b",
  "to": "v7.26.0",
  "added": [
    {
      "name": "ApproverPosture",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/task-spec.ts:53",
        "src/core/types.ts:23",
        "src/index.ts:3335"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "McpProbeResult",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/mcp-probe.ts:60",
        "src/index.ts:349"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "PermissionRuleWriteContractHooks",
      "kind": "interface",
      "tier": "advanced",
      "at": [
        "src/core/store-contracts/permission-rule-write-contract.ts:19",
        "src/index.ts:2737"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "READ_ROOT_CANDIDATE_DIR_MAX",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/read-root-candidate.ts:9",
        "src/index.ts:2812"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "REMOVAL_LIVENESS_WORDS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1004",
        "src/index.ts:2811"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RULE_WRITE_COMMITTED_WORDS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1021",
        "src/index.ts:2811"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RemovalLiveness",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1005",
        "src/index.ts:2811"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "RuleWriteCommitted",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/permission-rule-store.ts:1022",
        "src/index.ts:2811"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "TASK_OUTPUT_REPLAY_KINDS",
      "kind": "variable",
      "tier": "advanced",
      "at": [
        "src/core/task-registry-shared.ts:762",
        "src/index.ts:2810"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "TaskOutputReplay",
      "kind": "type",
      "tier": "advanced",
      "at": [
        "src/core/task-registry-shared.ts:763",
        "src/index.ts:2810"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "deriveShadowedSet",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/memory-engine/index.ts:210",
        "src/core/memory-engine/shadowing.ts:71",
        "src/index.ts:2010"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "normalizeReadRootCandidate",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/read-root-candidate.ts:19",
        "src/index.ts:2812"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "permissionRuleWriteContract",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/store-contracts/permission-rule-write-contract.ts:53",
        "src/index.ts:2737"
      ],
      "criteriaCovered": false,
      "breaking": false
    },
    {
      "name": "probeMcpServers",
      "kind": "function",
      "tier": "advanced",
      "at": [
        "src/core/mcp-probe.ts:231",
        "src/index.ts:349"
      ],
      "criteriaCovered": false,
      "breaking": false
    }
  ],
  "removed": [],
  "changed": [],
  "narrowed": [
    {
      "id": "F4",
      "source": "behaviorFlips.summary",
      "text": "NARROWING (#863 slice 2a, P2, memory): the shadowing carrier must stand on the seat's own default face — a memory product that keeps its subject name and supersedes H leaves only P in the index (`shadowedHidden` 1 / `supersededHidden` 1, search returns P alone); a tombstoned H lets O back into the injection index; a challenged H keeps O on all three faces; an org-layer same-name entry is shadowed like any other (org is not exempt) while a different-name entry stays."
    },
    {
      "id": "F7",
      "source": "behaviorFlips.summary",
      "text": "NARROWING (#1001, P2, store contract): a `RuleWriteDelta.kind` outside the closed set is REFUSED identically by both bundled backends (exhaustive switch + `never` arm + one shared error); the file backend no longer treats an unknown kind carrying a tombstone as a delete. The `permissionRuleWriteContract` kit (+2 exports) pins it for any backend."
    }
  ],
  "closedSetMembers": [
    {
      "set": "APPROVER_POSTURES",
      "at": [
        "src/core/auto-mode-directive.ts:47"
      ],
      "newSet": true,
      "added": [
        "bypass"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ApproverPosture",
      "at": [
        "src/core/task-spec.ts:53"
      ],
      "newSet": true,
      "added": [
        "bypass"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "ENGINE_NOTICE_CODES",
      "at": [
        "src/core/governance-codes.ts:315"
      ],
      "newSet": false,
      "added": [
        "memory.project_scope_absent"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MEMORY_PROJECT_KEY_ABSENT_REASONS",
      "at": [
        "src/core/memory.ts:1091"
      ],
      "newSet": true,
      "added": [
        "bare",
        "not_git",
        "unreadable"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "MemoryProjectKeyAbsentReason",
      "at": [
        "src/core/memory.ts:1092"
      ],
      "newSet": true,
      "added": [
        "bare",
        "not_git",
        "unreadable"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RULE_WRITE_COMMITTED_WORDS",
      "at": [
        "src/core/permission-rule-store.ts:1021"
      ],
      "newSet": true,
      "added": [
        "no",
        "unknown"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "set": "RuleWriteCommitted",
      "at": [
        "src/core/permission-rule-store.ts:1022",
        "src/index.ts:2811"
      ],
      "newSet": true,
      "added": [
        "no",
        "unknown"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "closedSetsUnreadable": [],
  "typeKeys": [
    {
      "type": "AddResult",
      "at": [
        "src/core/permission-rule-store.ts:1361"
      ],
      "added": [
        "committed"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "AskCarry",
      "at": [
        "src/core/hooks.ts:2151"
      ],
      "added": [
        "mandated"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "AskRequest",
      "at": [
        "src/core/tool-policy.ts:2622"
      ],
      "added": [
        "mandated"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "CleanMemoryIndexRow",
      "at": [
        "src/core/memory-engine/tools.ts:275"
      ],
      "added": [
        "shadowedBy"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "CleanMemorySearchHit",
      "at": [
        "src/core/memory-engine/tools.ts:178"
      ],
      "added": [
        "shadowedBy"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "EffectiveMemoryScopes",
      "at": [
        "src/core/task-result.ts:127"
      ],
      "added": [
        "projectKey"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "ExposedMemoryIndexRow",
      "at": [
        "src/core/memory-engine/tools.ts:293"
      ],
      "added": [
        "shadowedBy"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "ExposedMemorySearchHit",
      "at": [
        "src/core/memory-engine/tools.ts:204"
      ],
      "added": [
        "shadowedBy"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "MaybeCompactOptions",
      "at": [
        "src/core/auto-compaction.ts:331"
      ],
      "added": [
        "postureRestate"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "MemoryGetDetails",
      "at": [
        "src/core/memory-engine/tools.ts:235"
      ],
      "added": [
        "shadowedBy"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "MemoryIndexDetails",
      "at": [
        "src/core/memory-engine/tools.ts:308"
      ],
      "added": [
        "shadowedHidden"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "MemorySessionHandle",
      "at": [
        "src/core/memory-engine/types.ts:401"
      ],
      "added": [
        "shadowNames",
        "shadowedByScope"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "MemorySpecInput",
      "at": [
        "src/core/memory.ts:1109"
      ],
      "added": [
        "projectKey"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "NormalizedMemorySpec",
      "at": [
        "src/core/memory.ts:1038"
      ],
      "added": [
        "projectKey"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "PermissionResult",
      "at": [
        "src/core/tool-policy.ts:447"
      ],
      "added": [
        "mandated"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "PreToolUseResult",
      "at": [
        "src/core/hooks.ts:1163"
      ],
      "added": [
        "mandated"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "RemoveResult",
      "at": [
        "src/core/permission-rule-store.ts:1081"
      ],
      "added": [
        "committed"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    },
    {
      "type": "TaskSpec",
      "at": [
        "src/core/task-spec.ts:55"
      ],
      "added": [
        "approverPosture"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    }
  ],
  "declarationMoves": [
    {
      "name": "READ_ROOT_CANDIDATE_DIR_MAX",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/core/read-root-candidate.ts"
      ],
      "to": [
        "src/core/read-root-candidate.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "REMOVAL_LIVENESS_WORDS",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/core/permission-rule-store.ts"
      ],
      "to": [
        "src/core/permission-rule-store.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "RemovalLiveness",
      "kind": "type",
      "onSurface": true,
      "from": [
        "src/core/permission-rule-store.ts"
      ],
      "to": [
        "src/core/permission-rule-store.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "TASK_OUTPUT_REPLAY_KINDS",
      "kind": "variable",
      "onSurface": true,
      "from": [
        "src/core/task-registry-shared.ts"
      ],
      "to": [
        "src/core/task-registry-shared.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "TaskOutputReplay",
      "kind": "type",
      "onSurface": true,
      "from": [
        "src/core/task-registry-shared.ts"
      ],
      "to": [
        "src/core/task-registry-shared.ts",
        "src/index.ts"
      ]
    },
    {
      "name": "normalizeReadRootCandidate",
      "kind": "function",
      "onSurface": true,
      "from": [
        "src/core/read-root-candidate.ts"
      ],
      "to": [
        "src/core/read-root-candidate.ts",
        "src/index.ts"
      ]
    }
  ],
  "mintMoves": [],
  "criteriaObserves": [
    {
      "kind": "taskEventField",
      "name": "wiring_manifest.manifest",
      "assertions": [
        "G1.a",
        "G1.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AddResult.committed",
      "assertions": [
        "G5.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "AskRequest.mandated",
      "assertions": [
        "G7.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "Checkpoint.pendingAction",
      "assertions": [
        "G8.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "MemoryIndexDetails.shadowedHidden",
      "assertions": [
        "G3.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ReadRootGrantCandidate.dir",
      "assertions": [
        "G4.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RuleTightenAddDelta.kind",
      "assertions": [
        "G6.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.approverPosture",
      "assertions": [
        "G2.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "TaskSpec.autoModeRequested",
      "assertions": [
        "G2.a",
        "G9.a"
      ]
    }
  ],
  "consumersHint": {
    "cli": [
      "AddResult",
      "AskCarry",
      "AskRequest",
      "ENGINE_NOTICE_CODES",
      "MemorySessionHandle",
      "PermissionResult",
      "PreToolUseResult",
      "REMOVAL_LIVENESS_WORDS",
      "RemovalLiveness",
      "TASK_OUTPUT_REPLAY_KINDS",
      "TaskOutputReplay",
      "TaskSpec",
      "normalizeReadRootCandidate"
    ],
    "server": [
      "AddResult",
      "AskCarry",
      "AskRequest",
      "CleanMemoryIndexRow",
      "CleanMemorySearchHit",
      "ENGINE_NOTICE_CODES",
      "EffectiveMemoryScopes",
      "ExposedMemoryIndexRow",
      "ExposedMemorySearchHit",
      "MaybeCompactOptions",
      "MemoryGetDetails",
      "MemoryIndexDetails",
      "MemorySessionHandle",
      "MemorySpecInput",
      "NormalizedMemorySpec",
      "PermissionResult",
      "PreToolUseResult",
      "READ_ROOT_CANDIDATE_DIR_MAX",
      "RemovalLiveness",
      "RemoveResult",
      "TaskSpec",
      "normalizeReadRootCandidate"
    ],
    "sdk": [
      "AddResult",
      "AskRequest",
      "ENGINE_NOTICE_CODES",
      "MemorySpecInput",
      "PermissionResult",
      "PreToolUseResult",
      "RemovalLiveness",
      "TaskSpec"
    ],
    "note": "scanned cli@edad148c server@20cfa4b3 sdk@6d6c486 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it"
  },
  "breakingCount": 0,
  "breakingItems": [],
  "toResolvedAt": "61065a191d4d2a863c54cb46db9ec5903d6c5ab9"
}
