{
  "repo": "core",
  "version": "7.33.8",
  "from": "2dbd7b86789e1e5385ca2ebf13db6de617b33669",
  "to": "v7.33.8",
  "added": [],
  "removed": [],
  "changed": [],
  "narrowed": [
    {
      "id": "F1",
      "source": "behaviorFlips.summary",
      "text": "#1181 (security, narrowing): a `runSpec` / `runOracle` gate's command is spawned with the engine's environment through the credential scrub; `OracleGateSpec.inheritEnv` (\"scrub\" default / \"all\" / allow list, names only) puts names back per gate; a malformed `inheritEnv` or a command the OS refuses outright is an `error` gate; the withheld names reach the shared once-per-process `config.secret_env_scrubbed` notice through `runOracle`'s and `RunSpecOptions`' new optional `onNotice`."
    },
    {
      "id": "F2",
      "source": "behaviorFlips.summary",
      "text": "#1181 (security, narrowing): the engine's helpers looked up on PATH — the tree kill's `ps` / `taskkill` / Git Bash group kill, shell discovery (`which bash` / `where bash.exe`) and the lock-holder probe (`ps -p`) — spawn with the scrubbed environment and announce nothing."
    },
    {
      "id": "F3",
      "source": "behaviorFlips.summary",
      "text": "#1183 (security, narrowing; 7.33.6 regression): every `GIT_CONFIG_PARAMETERS` entry is judged from depth 0 — a credential-carrying command line in the fourth or a later entry withholds the variable, as the first three did (`SecretEnvFinding.kind` = `family-rule`)."
    }
  ],
  "closedSetMembers": [
    {
      "set": "InheritEnvPolicy",
      "at": [
        "src/core/secret-env.ts:941"
      ],
      "newSet": true,
      "added": [
        "all",
        "scrub"
      ],
      "removed": [],
      "breaking": false,
      "criteriaCovered": false
    }
  ],
  "closedSetsUnreadable": [],
  "typeKeys": [
    {
      "type": "OracleGateSpec",
      "at": [
        "src/core/spec-contract.ts:54"
      ],
      "added": [
        "inheritEnv"
      ],
      "addedDetail": [
        {
          "key": "inheritEnv",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    },
    {
      "type": "RunSpecOptions",
      "at": [
        "src/orchestration/run-spec.ts:56"
      ],
      "added": [
        "onNotice"
      ],
      "addedDetail": [
        {
          "key": "onNotice",
          "optional": true
        }
      ],
      "addedRequired": [],
      "removed": [],
      "breaking": false,
      "criteriaCovered": true
    }
  ],
  "typeKeysUnreadableArms": [],
  "typeKeysFlattenedCount": 217,
  "declarationMoves": [],
  "mintMoves": [],
  "criteriaObserves": [
    {
      "kind": "engineNoticeCode",
      "name": "config.secret_env_scrubbed",
      "assertions": [
        "G1.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "ExecutionError.code",
      "assertions": [
        "G2.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "McpServerSpec.transport",
      "assertions": [
        "G2.b",
        "G2.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "OracleGateResult.reason",
      "assertions": [
        "G1.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "OracleGateResult.verdict",
      "assertions": [
        "G1.a",
        "G1.b"
      ]
    },
    {
      "kind": "typeMember",
      "name": "OracleGateSpec.inheritEnv",
      "assertions": [
        "G1.a",
        "G2.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "RunSpecOptions.onNotice",
      "assertions": [
        "G1.c"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SecretEnvFinding.key",
      "assertions": [
        "G3.a"
      ]
    },
    {
      "kind": "typeMember",
      "name": "SecretEnvFinding.kind",
      "assertions": [
        "G3.a",
        "G3.b"
      ]
    }
  ],
  "consumersHint": {
    "cli": [],
    "server": [],
    "sdk": [],
    "note": "scanned cli@4e593722 server@108404d4 sdk@8c379ef — 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 (OracleGateSpec, RunSpecOptions)"
  },
  "breakingCount": 0,
  "breakingItems": [],
  "toResolvedAt": "128ed39a3b20bb0a28352a156cb229538261551e"
}
